Wie man Zahlen aus SQL-String-Bereichen für einfache Vergleiche extrahiert
Die Arbeit mit Daten in SQL stellt oft einzigartige Herausforderungen dar, insbesondere wenn es um Spalten geht, die Prozentbereiche im Format von Strings enthalten. Wenn Sie auf eine Situation gestoßen sind, in der Sie die untere Grenznummer aus solchen Strings extrahieren müssen, sind Sie nicht allein. Dieser Blogbeitrag führt Sie durch eine Lösung, um diese Strings in nützliche numerische Werte umzuwandeln, die einen einfachen Vergleich in Ihren SQL-Abfragen ermöglichen.
Das Problem: Zahlen aus String-Bereichen extrahieren
Stellen Sie sich vor, Sie haben eine Spalte in Ihrer SQL-Datenbank, die Prozentbereiche in den folgenden Formaten enthält:
'<5%'
'5-10%'
'10-15%'
- …
'95-100%'
Bei der Durchführung von Abfragen möchten Sie möglicherweise diese Prozentbereiche mit einer bestimmten numerischen Schwelle vergleichen. Da die Daten jedoch als Strings gespeichert sind, kann es ziemlich knifflig sein, nur die erste Zahl für den Vergleich zu extrahieren. Versuche mit verschiedenen String-Funktionen bringen möglicherweise keine konsistenten Ergebnisse für alle Einträge, was zu Verwirrung und Fehlern in Ihrer Datenanalyse führen kann.
Die Lösung: Die erste Zahl mit SQL extrahieren
Um diese Prozent-Strings in Zahlen umzuwandeln, können wir die String-Manipulationsfunktionen von SQL nutzen. Im Folgenden finden Sie eine getestete Lösung, die effektiv die untere Grenznummer aus den Prozentbereich-Strings extrahiert.
SQL-Abfragebeispiel
Hier ist eine SQL-Abfrage, die dies erreicht:
SELECT
substring(
replace(interest , '<',''),
patindex('%[0-9]%', replace(interest , '<','')),
patindex('%[^0-9]%', replace(interest, '<','')) - 1
)
FROM
table1
Einzelheiten zur SQL-Abfrage
-
Replace-Funktion:
- Der Teil
replace(interest, '<', '')
der Abfrage entfernt das kleiner-als-Symbol aus dem String und bereitet ihn für die Extraktion vor.
- Der Teil
-
Pattern-Index-Funktionen:
patindex('%[0-9]%', ...)
findet die Position des ersten numerischen Zeichens im modifizierten String. Dies hilft uns, den Beginn der Zahl zu bestimmen.patindex('%[^0-9]%', ...)
findet die Position des ersten nicht-numerischen Zeichens, das auf die Zahl folgt, und markiert somit das Ende unserer Extraktion.
-
Substring-Funktion:
- Schließlich wird die
substring
-Funktion verwendet, um den relevanten Teil des Strings zu extrahieren, das ist die untere Grenzprozentzahl.
- Schließlich wird die
Testen und Optimierung
Diese SQL-Abfrage wurde getestet und hat sich als genau für verschiedene mögliche String-Formate erwiesen. Sie sollten jedoch in Betracht ziehen, die Abfrage je nach Größe Ihres Datensatzes weiter zu optimieren.
Fazit
Indem Sie die in diesem Blogbeitrag beschriebenen Schritte befolgen, können Sie Prozentbereichsstrings effizient in vergleichbare numerische Werte umwandeln. Dies vereinfacht nicht nur Ihre Datenanalyse, sondern verbessert auch Ihre Fähigkeit, komplexe Abfragen durchzuführen.
Wenn Sie häufig auf ähnliche Herausforderungen bei der Datenmanipulation in SQL stoßen, halten Sie diese Technik in Ihrem Werkzeugkasten für eine schnelle Referenz bereit. Viel Spaß beim Abfragen!