Maison > base de données > tutoriel mysql > Comment puis-je extraire des nombres à partir de chaînes alphanumériques en SQL ?

Comment puis-je extraire des nombres à partir de chaînes alphanumériques en SQL ?

Linda Hamilton
Libérer: 2025-01-21 01:51:08
original
499 Les gens l'ont consulté

How Can I Extract Numbers from Alphanumeric Strings in SQL?

Extraire les nombres d'une chaîne alphanumérique en SQL

Question :

Vous avez des chaînes contenant des caractères alphanumériques et vous devez extraire uniquement les valeurs numériques. Par exemple, étant donné la chaîne suivante :

  • 003Plan d'examen préliminaire
  • Coordination005
  • Bilan1000

Vous souhaitez rechercher :

  • 003
  • 005
  • 1000

Solution :

Pour extraire des nombres d'une chaîne à l'aide de SQL, vous pouvez utiliser des fonctions définies par l'utilisateur (UDF). Créez l'UDF suivante :

<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>
Copier après la connexion

Utilisation :

Après avoir créé l'UDF, vous pouvez l'utiliser pour extraire des nombres d'une chaîne :

<code class="language-sql">SELECT dbo.udf_GetNumeric(column_name)
FROM table_name</code>
Copier après la connexion

Par exemple :

<code class="language-sql">SELECT dbo.udf_GetNumeric('003Preliminary Examination Plan')</code>
Copier après la connexion

Référence :

Remarque :

Cette solution génère des nombres sous forme de chaînes. Si vous avez besoin d'entiers, vous pouvez utiliser la fonction CAST() pour les convertir. Le code ci-dessus a été simplifié pour éviter une logique complexe inutile et garantir que la fonction renvoie toujours une valeur.

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal