Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Formatage d'un nombre sur deux caractères

5 réponses
Avatar
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

5 réponses

Avatar
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 ] )
Avatar
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 *************************
Avatar
BrunoSCP
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" a écrit dans le message de news:

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 ] )




Avatar
BrunoSCP
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" a écrit dans le message de news:

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 *************************


Avatar
helios services
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