Heim > Datenbank > MySQL-Tutorial > Wie kann ich mit einer benutzerdefinierten SQL-Funktion Zahlen aus Zeichenfolgen extrahieren?

Wie kann ich mit einer benutzerdefinierten SQL-Funktion Zahlen aus Zeichenfolgen extrahieren?

Patricia Arquette
Freigeben: 2025-01-21 01:47:08
Original
707 Leute haben es durchsucht

How Can I Extract Numbers from Strings Using a SQL User-Defined Function?

Extrahieren numerischer Daten aus Zeichenfolgen in SQL mithilfe einer benutzerdefinierten Funktion

Diese Anleitung zeigt, wie Sie eine benutzerdefinierte SQL-Funktion (UDF) erstellen, um effizient nur numerische Zeichen aus einer Zeichenfolge zu extrahieren. Dies ist eine häufige Aufgabe bei der Datenbereinigung und -manipulation.

Erstellen der UDF:

Der folgende SQL-Code definiert eine UDF mit dem Namen dbo.udf_GetNumeric, die eine Zeichenfolge als Eingabe akzeptiert und den extrahierten numerischen Teil zurückgibt:

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
Nach dem Login kopieren

Anwenden der UDF:

Sobald die UDF erstellt ist, verwenden Sie die folgende SELECT-Anweisung, um sie auf eine Spalte in Ihrer Tabelle anzuwenden:

SELECT dbo.udf_GetNumeric(column_name) AS ExtractedNumber
FROM table_name;
Nach dem Login kopieren

Ersetzen Sie column_name durch den tatsächlichen Namen der Spalte, die die Zeichenfolgen enthält, und table_name durch den Namen Ihrer Tabelle. Das Ergebnis ist eine neue Spalte ExtractedNumber, die nur die numerischen Werte enthält.

Anschauliches Beispiel:

Bedenken Sie diese Beispieldaten:

String 1 String 2 String 3
003Preliminary Examination Plan Coordination005 Balance1000sheet

Nach dem Anwenden der UDF lautet die Ausgabe:

String 1 String 2 String 3
003 005 1000

Funktionserklärung:

Die Funktion dbo.udf_GetNumeric verwendet PATINDEX, um das erste nicht numerische Zeichen zu finden. Die Funktion STUFF entfernt dann dieses Zeichen. Dieser Vorgang wiederholt sich, bis alle nicht numerischen Zeichen entfernt sind und nur noch die Zahlen übrig bleiben. Die Funktionen ISNULL und TRIM verarbeiten potenzielle Nullwerte und führende/nachgestellte Leerzeichen.

Weitere Verbesserungen (zukünftiges Update): Eine detailliertere Erklärung und mögliche Verbesserungen dieser Funktion werden in einem zukünftigen Update hinzugefügt.

Das obige ist der detaillierte Inhalt vonWie kann ich mit einer benutzerdefinierten SQL-Funktion Zahlen aus Zeichenfolgen extrahieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage