Maison >base de données >tutoriel mysql >Comment extraire des nombres de chaînes à l'aide de SQL ?

Comment extraire des nombres de chaînes à l'aide de SQL ?

DDD
DDDoriginal
2025-01-21 01:42:09726parcourir

How to Extract Numbers from Strings Using SQL?

Extraction de nombres à partir de chaînes SQL

Question :

Écrivez une requête SQL pour extraire uniquement les valeurs numériques d'une chaîne donnée. Par exemple, étant donné les chaînes d'entrée « 003Plan d'examen préliminaire », « Coordination005 » et « Balance1000sheet », les sorties souhaitées sont respectivement « 003 », « 005 » et « 1000 ».

Solution :

Pour accomplir cette tâche, nous pouvons exploiter les fonctions définies par l'utilisateur (UDF) pour analyser la chaîne et récupérer la valeur numérique. Voici comment procéder :

<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), '')
END
GO</code>

Nous pouvons maintenant utiliser cet UDF dans notre requête :

<code class="language-sql">SELECT dbo.udf_GetNumeric(column_name) 
FROM table_name</code>

Cette méthode avancée extrait efficacement les valeurs numériques des chaînes en SQL. Notez que cet UDF modifié gère les valeurs nulles et les cas contenant uniquement des caractères non numériques, renvoyant une chaîne vide au lieu de 0.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn