J'ai une chaîne de caractères qui compte jusqu'à 3 caractères lorsqu'elle est créée pour la première fois dans SQL Server 2008 R2.
Je voudrais la compléter par des zéros non significatifs, de sorte que si sa valeur d'origine était de 1, la nouvelle valeur serait de 001. Ou si sa valeur d'origine était de 23, la nouvelle valeur est de 023. Ou si sa valeur d'origine est de '124' ; alors la nouvelle valeur est la même que la valeur d'origine.
J'utilise SQL Server 2008 R2. Comment puis-je faire cela en utilisant T-SQL ?
Si le champ est déjà une chaîne, cela fonctionnera
SELECT RIGHT('000'+ISNULL(field,''),3)
Si vous voulez que les valeurs nulles soient affichées sous la forme '000' ;
Il peut s'agir d'un nombre entier -- alors vous voudrez
SELECT RIGHT('000'+CAST(field AS VARCHAR(3)),3)
Comme l'exige la question, cette réponse ne fonctionne que si la longueur <= 3, si vous voulez quelque chose de plus grand, vous devez modifier la constante chaîne et les deux constantes entières pour obtenir la largeur nécessaire. Par exemple :
'0000' ; et VARCHAR(4)),4
.
Pour les entiers, vous pouvez utiliser la conversion implicite de int en varchar :
SELECT RIGHT(1000 + field, 3)