Utilisez uniquement le DIGITS fonction, car cela vérifie la longueur du champ numeric ou decimal, etc et on complète par des zéros à gauche quand est nécessaire.
SELECT LPAD( CAST(FIELD AS CHAR(11)) ,11,'0') AS PADDEDFIELD
Je suis LPAD *LIBL type *N n'est pas trouvé. Eh bien, j'ai essayé, pas un utilisateur de db2 🙂 .... voir ici aussi stackoverflow.com/questions/4964244/... LPAD fonction n'est disponible que sur la DB2 pour zOS. lpad( cast( F2 comme int),5,'0') cela a fonctionné pour moi sur iseries Cela fonctionne dans datastage DB2 stade trop
Basé sur votre commentaire de @M. Floue Botton réponse, je devine que vous êtes sur DB2 for i, qui n'ont pas la LPAD fonction. Vous pouvez utiliser une combinaison de la REPEAT et DROITfonctions:
Ne sais pas si vous avez travaillé dessus, cependant, essayez ceci:
SELECT LPAD( DIGITS( fieldName ),11,'0'))as paddedFieldName FROM yourTable
Le LPAD est le padding à gauche, mais les CHIFFRES de la fonction était la seule façon dont je me suis DB2 pour traiter la valeur numérique d'une chaîne.
Je suis juste allé dans une autre direction: cast(champ de type int)
Quel est le rapport avec la question? Je ne vois pas la nécessité de la conversion en INT. La db2 lpad fonction semble être surchargé avec entier comme premier argument.
Mon LeftPad fonction, sans LeftPad fonction
test ...
OriginalL'auteur Adam111p
Utilisez uniquement le
DIGITS
fonction, car cela vérifie la longueur du champ numeric ou decimal, etc et on complète par des zéros à gauche quand est nécessaire.OriginalL'auteur kelgwiin
À l'aide de http://pic.dhe.ibm.com/infocenter/dzichelp/v2r2/topic/com.ibm.db2.doc.sqlref/castsp.htm pour plus de détails sur la FONTE
et http://pic.dhe.ibm.com/infocenter/dzichelp/v2r2/topic/com.ibm.db2z10.doc.sqlref/src/tpc/db2z_scalarfunctionsintro.htm pour les fonctions de chaîne,
Je suppose que cela devrait faire l'affaire -
SELECT LPAD( CAST(FIELD AS CHAR(11)) ,11,'0') AS PADDEDFIELD
Eh bien, j'ai essayé, pas un utilisateur de db2 🙂 .... voir ici aussi stackoverflow.com/questions/4964244/...
LPAD fonction n'est disponible que sur la DB2 pour
zOS
.lpad( cast( F2 comme int),5,'0') cela a fonctionné pour moi sur iseries
Cela fonctionne dans datastage DB2 stade trop
OriginalL'auteur AjV Jsy
Basé sur votre commentaire de @M. Floue Botton réponse, je devine que vous êtes sur
DB2 for i
, qui n'ont pas laLPAD
fonction. Vous pouvez utiliser une combinaison de laREPEAT
etDROIT
fonctions:OriginalL'auteur bhamby
Ne sais pas si vous avez travaillé dessus, cependant, essayez ceci:
Le LPAD est le padding à gauche, mais les CHIFFRES de la fonction était la seule façon dont je me suis DB2 pour traiter la valeur numérique d'une chaîne.
OriginalL'auteur Filipe
Si c'est DB2 for i, et macolonne type de données DÉCIMAL avec une précision (11) et l'échelle (0), alors:
sera de retour:
Changer le nombre de zéros peut être fait de plusieurs façons. CASTing pour une autre précision avant d'utiliser les CHIFFRES() en est une.
OriginalL'auteur user2338816
Je suis juste allé dans une autre direction: cast(champ de type int)
La db2 lpad fonction semble être surchargé avec entier comme premier argument.
OriginalL'auteur macunte
Essayez ceci pour votre champ x:
OriginalL'auteur funnyfish
Je voulais seulement à définir mon champ une fois dans l'instruction select ci-dessus a travaillé pour moi et c'est bien rangé
OriginalL'auteur user10629183
Du Numérique 8,0 (datenumfld=20170101) à
01/01/2017
Cela fonctionne pour moi:OriginalL'auteur Not an expert