Heim > Datenbank > MySQL-Tutorial > Wie kann ich numerische Werte aus Zeichenfolgen in SQL extrahieren?

Wie kann ich numerische Werte aus Zeichenfolgen in SQL extrahieren?

Patricia Arquette
Freigeben: 2025-01-21 01:36:08
Original
500 Leute haben es durchsucht

How Can I Extract Numeric Values from Strings in SQL?

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

Das gewünschte Ergebnis besteht darin, nur die Zahlen aus jeder Zeichenfolge zu extrahieren:

<code>字符串 1: 003
字符串 2: 005
字符串 3: 1000</code>
Nach dem Login kopieren

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

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

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

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!

Quelle:php.cn
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