Conversion en numérique d'un ID : erreur nombre non valide
Bonjour,
Je travaille sur une base de production très mal montée. Les merisiens ou autres adeptes de bases bien propres en seraient médusés. Mais je dois faire avec, je n'ai pas le choix.
Sur la base de développement je lance (en simplifiant la requête):
Code:
1 2 3 4
|
SELECT max(TO_NUMBER(msgid)) as msgid_max
FROM messages
WHERE TO_NUMBER(msgid) >= 10 AND TO_NUMBER(msgid) < 50 |
Cela marche très bien. Mais je vois venir la question sur la nature de colonne alors j'y réponds de suite : Oui les messages sont stockés en chaine de caractère, je sais c'est nul, mais que voulez-vous...
Malheureusement en production, et bien j'ai des chaines de caractères du genre 'TOTO'... Du coup je ne peux pas les convertir en string. Ce même script retourne la fatidique erreur :
Code:
Erreur nombre non valide
Ma question, comment faire pour lui dire que si msgid n'est pas un nombre alors la valeur est zéro ?