Forum iSeries, hébergé par xdocs400.com

As400, iSeries, i5, System i, une machine qui évolue pour être de plus en plus puissante.

Vous n'êtes pas identifié(e).

Annonce

ATTENTION : Le système anti-spam est à nouveau opérationnel. Nous avons réactivé les inscriptions.

#1 2018-09-12 11:37:48

maj
Membre
Inscription : 2011-11-24
Messages : 821

SQL test de données numérique dans une zone Alpha

Bonjour,

Comment savoir si %trim(mazonealpha) contient uniquement du numérique en SQL ? merci

Jean

Hors ligne

#2 2018-09-12 13:26:11

remit
Membre
Inscription : 2007-02-25
Messages : 232

Re : SQL test de données numérique dans une zone Alpha

LENGTH(TRIM(TRANSLATE(TRIM(mazonealpha), ' ', '0123456789')))  vaut 0 si et seulement si mazonealpha ne contient que des chiffres de 0 à 9.

nota : le deuxième argument de TRANSLATE est le caractère espace.

Hors ligne

#3 2018-09-12 14:23:00

maj
Membre
Inscription : 2011-11-24
Messages : 821

Re : SQL test de données numérique dans une zone Alpha

Merci remit

Hors ligne

#4 2018-09-13 10:27:10

remit
Membre
Inscription : 2007-02-25
Messages : 232

Re : SQL test de données numérique dans une zone Alpha

... ou avec une expression régulière : REGEXP_COUNT(TRIM(mazonealpha), '[0-9]') = LENGTH(TRIM(mazonealpha))  si et seulement si mazonealpha ne contient que des chiffres de 0 à 9.

Hors ligne

#5 2018-09-13 15:02:52

B.Hauser
Membre
Inscription : 2014-11-15
Messages : 51

Re : SQL test de données numérique dans une zone Alpha

ou
  REGEXP_LIKE(Trim(MAZONEALPHA), '[0-9]')

ou
  REGEXP_LIKE(Trim(MAZONEAPLPHA), '[\d]')

Hors ligne

#6 2018-09-13 17:18:11

remit
Membre
Inscription : 2007-02-25
Messages : 232

Re : SQL test de données numérique dans une zone Alpha

Ce ne semble pas donner le même résultat :

VALUES CASE WHEN REGEXP_LIKE('12345', '[0-9]') THEN 'Num' ELSE 'NoNum' END  ==> "Num",
VALUES CASE WHEN REGEXP_LIKE('abcde', '[0-9]') THEN 'Num' ELSE 'NoNum' END  ==> "NoNum"

mais :
VALUES CASE WHEN REGEXP_LIKE('12c45', '[0-9]') THEN 'Num' ELSE 'NoNum' END  ==> "Num" ?

(idem avec [\d]).

Hors ligne

Pied de page des forums