SQL Server Comment déposer un nombre avec des zéros

La fonction T-SQL répliquée dans Microsoft SQL Server simplifie l'ajout de zéros non significatifs à une valeur numérique.

Créons une table 'emp' avec empide et un salaire colonnes.

créer une table emp (int empid, salaire int);


Insérez des exemples de données dans la table 'emp'.

insérer dans emp valeurs (1.300); insérer dans emp valeurs (2,30); insérer dans emp valeurs (3 500 000); insérer dans emp valeurs (4,1000);
sélectionnez * parmi emp; empid salaire ----------- ----------- 1 300 2 30 3 500000 4 1000 (4 rangée (s) affectée (s))


Maintenant, laissez-nous à gauche un salaire colonne avec des 0.

Si nous ne savons pas combien de 0 il faut plaquer à gauche pour que toutes les valeurs aient la même longueur, nous pouvons trouver la longueur maximale de un salaire colonne utilisant la requête suivante:

SELECT Max (mylength) FROM (SELECT Len (salaire) AS mylength FROM emp) x; ----------- 6

La requête renvoie la valeur 6, qui correspond à la longueur maximale de un salaire colonne due à l'empid 3 avec 500000 $ de salaire.

Maintenant, ajoutez les zéros au début du un salaire colonne, nous pouvons utiliser la fonction de chaîne incorporée répliquée dans T-SQL.

Syntaxe:

répliquer (expression de chaîne, expression entière);


SQL Server 2008: La requête ci-dessous laissera la colonne de salaire du pad avec des 0.

sélectionnez empid, répliquez ('0', 6 - len (salaire)) + exprimez (salaire en tant que varchar) en tant que salaire de emp; salaire empid ----------- ----------- 1 000300 2 000030 3 500000 4 001000 (4 ligne (s) affectée (s))


Dans la requête de la version SQL Server 2008, le premier paramètre est notre chaîne de remplissage «0». Dans le deuxième paramètre, nous soustrayons la longueur de un salaire colonne de 6 qui est notre longueur maximale. Ainsi, notre expression sait combien de 0 sont nécessaires pour quitter le pad et concaténer le un salaire colonne.

Avec SQL Server 2012, vous pouvez obtenir le même résultat avec un simple code d'une ligne à l'aide de la fonction FORMAT.

SQL Server 2012: Colonne de salaire gauche avec 0

SÉLECTIONNER LE FORMAT (salaire, '000000') DANS EMP; salaire empid ----------- ----------- 1 000300 2 000030 3 500000 4 001000 (4 ligne (s) affectée (s))