Formatage d'un nombre sur deux caractères

Le
BrunoSCP
Bonjour,
J'ai 3 champs numériques que je veux concaténer pour former une chaine :
ex : 1;10;4 doit devenir '011004'
Je ne trouve pas dans transact_sql de fonction du type
format([monChamp],'00')

Merci pour votre aide
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
WonderMan
Le #11879641
BrunoSCP a écrit :
Bonjour,
J'ai 3 champs numériques que je veux concaténer pour former une chaine :
ex : 1;10;4 doit devenir '011004'
Je ne trouve pas dans transact_sql de fonction du type
format([monChamp],'00')

Merci pour votre aide



Utilisez CAST ou CONVERT et la concaténation avec l'opérateur + .

CAST et CONVERT proposent des options de style lors de la conversion,
et si ça ne suffit pas, vous pourrez surement faire le reste "à la
main" (comme on dit).

Voir : http://msdn.microsoft.com/fr-fr/library/ms187928.aspx

Syntax for CAST:
CAST ( expression AS data_type [ (length ) ])

Syntax for CONVERT:
CONVERT ( data_type [ ( length ) ] , expression [ , style ] )
Fred BROUARD
Le #11879611
BrunoSCP a écrit :
Bonjour,
J'ai 3 champs numériques que je veux concaténer pour former une chaine :
ex : 1;10;4 doit devenir '011004'
Je ne trouve pas dans transact_sql de fonction du type
format([monChamp],'00')

Merci pour votre aide



REPLACE(macolonne, ';', '0')

A +








--
Frédéric BROUARD, MVP SQL Server, expert bases de données et langage SQL
Le site sur le langage SQL et les SGBDR : http://sqlpro.developpez.com
Audit, conseil, expertise, formation, modélisation, tuning, optimisation
*********************** http://www.sqlspot.com *************************
BrunoSCP
Le #11879331
Merci,
Je n'ai pas trouvé de style correspondant à mon besoin dans les instructions
cast et convert

Finalement j'ai utilisé le cast avec l'astuce suivante :
right('00' + Cast(MaColonne1 as varchar(2)),2) + right('00' +
Cast(MaColonne2 as varchar(2)),2) + .....

ce qui est un peu mieux que ce que j'avais fait en première mouture :
(case when MaColonne1 < 10 then '0' + cast(MaColonne1 as char(1)) else
cast(MaColonne1 as char(2)) end ) + ...

Mais bon, si quelqu'un connait le code de style qui va bien, ça aurait plus
de gueule
cast(MaColonne1, leBonStyle) + cast(MaColonne2, leBonStyle)




"WonderMan"
BrunoSCP a écrit :
Bonjour,
J'ai 3 champs numériques que je veux concaténer pour former une chaine :
ex : 1;10;4 doit devenir '011004'
Je ne trouve pas dans transact_sql de fonction du type
format([monChamp],'00')

Merci pour votre aide



Utilisez CAST ou CONVERT et la concaténation avec l'opérateur + .

CAST et CONVERT proposent des options de style lors de la conversion, et
si ça ne suffit pas, vous pourrez surement faire le reste "à la main"
(comme on dit).

Voir : http://msdn.microsoft.com/fr-fr/library/ms187928.aspx

Syntax for CAST:
CAST ( expression AS data_type [ (length ) ])

Syntax for CONVERT:
CONVERT ( data_type [ ( length ) ] , expression [ , style ] )




BrunoSCP
Le #11879321
L'art de poser une question est difficile.
Je me suis mal expliqué, mes ";" representaient des colonnes de ma table.
Merci quand même




"Fred BROUARD"
BrunoSCP a écrit :
Bonjour,
J'ai 3 champs numériques que je veux concaténer pour former une chaine :
ex : 1;10;4 doit devenir '011004'
Je ne trouve pas dans transact_sql de fonction du type
format([monChamp],'00')

Merci pour votre aide



REPLACE(macolonne, ';', '0')

A +








--
Frédéric BROUARD, MVP SQL Server, expert bases de données et langage SQL
Le site sur le langage SQL et les SGBDR : http://sqlpro.developpez.com
Audit, conseil, expertise, formation, modélisation, tuning, optimisation
*********************** http://www.sqlspot.com *************************


helios services
Le #11879171
Fred BROUARD a écrit :
BrunoSCP a écrit :
Bonjour,
J'ai 3 champs numériques que je veux concaténer pour former une chaine :
ex : 1;10;4 doit devenir '011004'
Je ne trouve pas dans transact_sql de fonction du type
format([monChamp],'00')

Merci pour votre aide



REPLACE(macolonne, ';', '0')

A +










mais peut on faire confiance à quelqu'un qui prétends coder plus de
65536 valeurs sur 2 octets ?

http://groups.google.com/group/fr.comp.applications.sgbd/msg/621527f995585842?dmode=source





et donc les écrits ont été bannis de wikipedia

--
Dr Thierry HOLZ
HELIOS SERVICES
180 rue de la croix du chene
60250 HEILLES
www.openqm.com02.net
www.pick.com02.net
Publicité
Poster une réponse
Anonyme