Bonjour,
je cherche à savoir s'il existe une fonction sql pour tester si une chaîne de caractères est numérique ou non, genre isnumerique ou isdigit.
genre :
Merci d'avanceCode:
1
2
3
4 select * from ma_table where fonction_recherchée(champ)
Version imprimable
Bonjour,
je cherche à savoir s'il existe une fonction sql pour tester si une chaîne de caractères est numérique ou non, genre isnumerique ou isdigit.
genre :
Merci d'avanceCode:
1
2
3
4 select * from ma_table where fonction_recherchée(champ)
Pas aussi simplement, mais en utilisant TRANSLATE on y arrive :
Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 with MaTable as ( select 'ABCDE' as str from dual union all select '132456' from dual union all select 'X13456' from dual union all select null from dual ) select str , case when translate(str, '#0123456789', '#') is null then 1 else 0 end as is_numeric from MaTable; STR IS_NUMERIC ------ ---------- ABCDE 0 132456 1 X13456 0 1
Bonsoir,
Je croyais bien avoir trouvé un truc sympa dans la FAQ, il y a longtemps, mais je suis incapable de mettre la main dessus.
Sinon, voici la discussion qui y menait:
http://www.developpez.net/forums/d19...ver-isnumeric/
@+
;)
Tout dépend si on souhaite tester des chiffres à virgule ou pas.
Si c'est juste pour tester des nombres (sans espaces, sans virgule, sans point)
Code:RTRIM(chaine, '0123456789') IS NULL