Tester si la valeur d’une colonne alphanumérique est 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

Print Friendly, PDF & Email