extrahieren In der Datenbankumgebung müssen die eingebetteten numerischen Daten möglicherweise aus der Zeichenfolge extrahiert werden. Betrachten Sie das folgende Beispiel:
Zeichenfolge 1: 003Preliminary Prüfungsplan Zeichenfolge 2: Koordination005 Zeichenfolge 3: Balance1000Sheet
字符串 1: 003Preliminary Examination Plan
字符串 2: Coordination005
字符串 3: Balance1000sheet
String 1: 003 Zeichenfolge 2: 005 Zeichenfolge 3: 1000
字符串 1: 003
字符串 2: 005
字符串 3: 1000
Funktion erstellen dbo.udf_getnumeric
((
@Stalphanumeric varchar (256)
Heilung
Return varchar (256)
ALS
Beginnen
Deklariere @intalpha int
Setalpha = patindex ('%[^0-9]%', @stalphanumeric)
Beginnen
Während @intalpha> 0
Beginnen
Set @strachanumeric = stuff (@stalphanumeric, @intalpha, 1, '')
Setalpha = patindex ('%[^0-9]%', @stalphanumeric)
Ende
Ende
Return isnull (trim (@stalphanumeric), '0')
Ende
GEHEN
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
wählen Sie dbo.udf_getnumeric (column_name) Aus table_name
Dies gibt nur den digitalen Teil der angegebenen Zeichenfolge in der angegebenen Spalte zurück. Für die angegebenen Beispieldaten entspricht das Ergebnis dem erwarteten Wert:
SELECT dbo.udf_GetNumeric(column_name)
from table_name
Hinweis:
im Originalcode003
005
1000
]. Diese Korrekturfunktion ist klarer und leichter zu verstehen und zu warten. Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.
Copyright© 2022 湘ICP备2022001581号-3