Heim >Datenbank >MySQL-Tutorial >Wie kann ich numerische Werte aus Zeichenfolgen in SQL extrahieren?
Numerische Daten aus String extrahieren
In einer Datenbankumgebung kann es erforderlich sein, eingebettete numerische Daten aus einer Zeichenfolge zu extrahieren. Betrachten Sie das folgende Beispiel:
<code>字符串 1: 003Preliminary Examination Plan 字符串 2: Coordination005 字符串 3: Balance1000sheet</code>
Das gewünschte Ergebnis besteht darin, nur die Zahlen aus jeder Zeichenfolge zu extrahieren:
<code>字符串 1: 003 字符串 2: 005 字符串 3: 1000</code>
Um dies in SQL zu implementieren, können Sie eine benutzerdefinierte benutzerdefinierte Funktion (UDF) erstellen:
<code class="language-sql">CREATE FUNCTION dbo.udf_GetNumeric ( @strAlphaNumeric VARCHAR(256) ) RETURNS VARCHAR(256) AS BEGIN DECLARE @intAlpha INT SET @intAlpha = PATINDEX('%[^0-9]%', @strAlphaNumeric) BEGIN WHILE @intAlpha > 0 BEGIN SET @strAlphaNumeric = STUFF(@strAlphaNumeric, @intAlpha, 1, '' ) SET @intAlpha = PATINDEX('%[^0-9]%', @strAlphaNumeric ) END END RETURN ISNULL(TRIM(@strAlphaNumeric), '0') END GO</code>
Diese UDF identifiziert und entfernt im Wesentlichen alle nicht numerischen Zeichen aus der Eingabezeichenfolge. Anschließend prüft es, ob die resultierende Zeichenfolge in eine Ganzzahl konvertiert werden kann, und gibt sie entsprechend zurück.
Um diese Funktion zu nutzen, wenden Sie sie einfach auf die entsprechende Spalte an:
<code class="language-sql">SELECT dbo.udf_GetNumeric(column_name) from table_name</code>
Dadurch wird nur der numerische Teil der Zeichenfolge in der angegebenen Spalte zurückgegeben. Für die bereitgestellten Beispieldaten stimmen die Ergebnisse mit den erwarteten Werten überein:
<code>003 005 1000</code>
Hinweis: Es gab einen grammatikalischen Fehler in der RETURN
-Anweisung im Originalcode, der in ein prägnanteres und effektiveres RETURN ISNULL(TRIM(@strAlphaNumeric), '0')
korrigiert wurde, um unnötige Verschachtelungs- und Typkonvertierungsprobleme zu vermeiden. Diese überarbeitete Funktion ist klarer und einfacher zu verstehen und zu warten.
Das obige ist der detaillierte Inhalt vonWie kann ich numerische Werte aus Zeichenfolgen in SQL extrahieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!