Dans l'environnement de la base de données, les données numériques intégrées peuvent devoir être extraites de la chaîne. Considérez l'exemple suivant:
String 1: 003 Plan d'examen préliminaire String 2: Coordination005 String 3: Balance1000Sheet
字符串 1: 003Preliminary Examination Plan
字符串 2: Coordination005
字符串 3: Balance1000sheet
chaîne 1: 003
Chaîne 2: 005
String 3: 1000
字符串 1: 003
字符串 2: 005
字符串 3: 1000
Cet UDF reconnaît et supprime tous les caractères non numériques dans la chaîne d'entrée. Ensuite, il vérifie si la chaîne de résultats peut être convertie en un entier et la renvoya en conséquence.
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
Sélectionnez dbo.udf_getNumeric (Column_name)
De table_name
Cela ne renverra que la partie numérique de la chaîne spécifiée dans la colonne spécifiée. Pour l'exemple de données fournies, le résultat correspondra à la valeur attendue:
SELECT dbo.udf_GetNumeric(column_name)
from table_name
Remarque: dans le code d'origine
return003
005
1000
Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.
Copyright© 2022 湘ICP备2022001581号-3