Accueil du site > Les articles > Tester si la valeur d’une colonne alphanumérique est numérique en (...)
Version à imprimer Enregistrer au format PDF

Tester si la valeur d’une colonne alphanumérique est numérique en SQL

vendredi 6 février 2009, par David Malle Visites  7995

Comment tester si le contenu d’une colonne alphanumérique contient ou non une valeur numérique en SQL


L’astuce

Le principe est de remplacer par un espace tous les caractères numériques et vérifier ensuite si on a autre chose que des espaces. Si c’est le cas alors le contenu n’est pas numérique.

On teste aussi directement la valeur espace, sans remplacer aucun caractères pour la considérer comme non numérique.

Très pratique dans une requête de masse, pour tester la bascule possible vers une colonne de type numérique.

L’exemple

SELECT COLONNE ,                                        
 CASE                                                  
 WHEN TRIM(TRANSLATE(COLONNE, '      ', '+-E.0123456789'))>' ' THEN 'N'
 WHEN TRIM(COLONNE) = ' ' THEN 'N'
 ELSE 'O'
END AS ISNUMERIQUE
FROM TABLE