"Si un ouvrier veut bien faire son travail, il doit d'abord affûter ses outils." - Confucius, "Les Entretiens de Confucius. Lu Linggong"
Page de garde > La programmation > Comment puis-je extraire les valeurs numériques des chaînes dans SQL?

Comment puis-je extraire les valeurs numériques des chaînes dans SQL?

Publié le 2025-02-04
Parcourir:729

How Can I Extract Numeric Values from Strings in SQL?

extraire les données numériques de la chaîne

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

return
003
005
1000
Dernier tutoriel Plus>

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