9
votes

Comment formatez-vous un numéro dans une chaîne avec des zéros rembourrés?

Très simplement dans SQL Server T-SQL Parlance, comment convertissez-vous le numéro 9 à la chaîne N'00009 '?


2 commentaires

Typiquement, vous laisseriez votre assurance-emploi faire ce travail ...


Typiquement, je laisserais mon niveau moyen faire ce travail, pas mon UI, mais dans ce cas, cela ne fonctionnerait pas, c'est pourquoi je pose la question.


3 Réponses :


19
votes

Vous pouvez essayer xxx

le résultat sera une chaîne, pas un type de numéro.


4 commentaires

Je ne suis pas sûr, cela fonctionne-t-il si le numéro est 143 ? Serait 00143 être retourné ou 00000143 ? @Jordan: Google-recherche de "Fonction de rembourrage SQL Server" pour voir les implémentations de LPAD et RPAD . Semble l'utilisation habituellement répliquer et len .


@Frustrated - non, cela ne prend que les 5 caractères les plus à droite après la concaténation.


@FrustratedwithFormsDesigner, oui, il fonctionnera pour 143 et n'importe quel nombre jusqu'à 99999. J'ai choisi la présentation à 5 chiffres car j'ai vu ce format dans la question. Le réplicat et Len fonctionnera également.


Ouais. Travaux. Brillant. C'est tout.



1
votes

Vous pouvez utiliser ceci:

SELECT REPLICATE('0',5-LEN('9'))+'9'


1 commentaires

Quelque chose de plus comme ça fonctionnerait mieux: Sélectionnez Répliquer ('0', 5-Len (Cast (Nombre sous Nvarchar))) + Cast (Nombre sous Nvarchar)



3
votes

Si vous êtes sur SQL Server 2012 ou version ultérieure, vous pouvez également utiliser Format Fonction:

SELECT FORMAT(1, '00000') AS PaddedNumber


0 commentaires