Je suis relativement nouveau dans PostgreSQL et je sais comment ajouter des zéros à gauche dans SQL Server, mais j'ai du mal à comprendre cela dans PostgreSQL.
J'ai une colonne numérique où le nombre maximum de chiffres est de 3 et le min est de 1: si c'est un chiffre, il a deux zéros à gauche, et si c'est 2 chiffres, il en a 1, par exemple 001, 058, 123.
Dans SQL Server, je peux utiliser les éléments suivants:
RIGHT('000' + cast([Column1] as varchar(3)), 3) as [Column2]
Cela n'existe pas dans PostgreSQL. Toute aide serait appréciée.
format()
fonction, qui vous permettra d'utiliserformat(Column1,'000') as Column2
.Réponses:
Vous pouvez utiliser les fonctions
rpad
etlpad
pour insérer des numéros vers la droite ou vers la gauche, respectivement. Notez que cela ne fonctionne pas directement sur les nombres, vous devrez donc les utiliser::char
ou::text
les cast:la source
printf
, ces fonctions à tête osseuse couperont silencieusement votre corde à la taille si elle ne rentre pas. Vous pourriez donc avoir besoin d'uncase when length(foo) ...
autour.La
to_char()
fonction est là pour formater les nombres:Le
fm
préfixe ("fill mode") évite les espaces de début dans le varchar résultant. Le000
définit simplement le nombre de chiffres que vous souhaitez avoir.Pour plus de détails sur l'image du format, veuillez consulter le manuel:
http://www.postgresql.org/docs/current/static/functions-formatting.html
la source
to_char
convertit en ###. OoAussi facile que
Références:
sqlfiddle: http://sqlfiddle.com/#!15/d41d8/3665
la source
right()
en 9.1