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!