La bonne manière
Bon ya toujours une bonne et une mauvaise manière de faire les choses ... C'est dingue j'ai toujours l'impression a posteriori d'avoir pris la mauvaise ... Sur le moment persuadé d'avoir pris la bonne naturellement ... =)
Bref la il sagit de base de donnée (DB2 essentiellement je sais pas si les autres ont quelque chose d'équivalent)... il sagit de format de donnée... Il sagit de récupérer une valeur en chaine d'une longueur fixe avec un filler de 0 devant si besoin est tout ça en partant d'un entier ...
Je m'explique :
SELECT CHAMP FROM MATABLE CHAMP ----- 1.256 12.354 365.524
Voila et moi il me faut :
CHAMP ----- 001256 012354 365524
J'ai d'abord fait :
SELECT CASE CHAMP < 10000 THEN '00' CONCAT CHAMP CASE CHAMP < 100000 THEN '0' CONCAT CHAMP ELSE CHAMP END AS CHAMP FROM MATABLE
Voila ce qui marche naturellement mais qui est assez verbeux ... Or il existe une fonction appelée DIGITS qui fait tout ça très bien ... Alors c'est magique, il va faire un padding a gauche et renvoyer une chaine... Simplement il fait le padding par rapport au type dans la base ... si par exemple c'est un INTEGER(16) il va renvoyer 16 positions ...
Mais du coup ma requete devient :
SELECT DIGITS(CHAMP) FROM MATABLE
Comme quoi ont est toujours loin de tout connaitre ...
