Ich bin relativ neu in PostgreSQL und weiß, wie man in SQL Server eine Zahl mit Nullen links auffüllt, aber ich habe Schwierigkeiten, dies in PostgreSQL herauszufinden.
Ich habe eine Zahlenspalte, in der die maximale Anzahl von Ziffern 3 und die minimale 1 ist: Wenn es eine Ziffer ist, hat es zwei Nullen links und wenn es 2 Ziffern sind, hat es 1, z. B. 001, 058, 123.
In SQL Server kann ich Folgendes verwenden:
RIGHT('000' + cast([Column1] as varchar(3)), 3) as [Column2]
Dies ist in PostgreSQL nicht vorhanden. Jede Hilfe wäre dankbar.
format()
Funktion, mit der Sie verwenden könnenformat(Column1,'000') as Column2
.Antworten:
Mit den Funktionen
rpad
undlpad
können Sie die Nummern nach rechts bzw. links auffüllen. Beachten Sie, dass dies nicht direkt für Zahlen funktioniert. Sie müssen sie daher verwenden::char
oder::text
umwandeln:quelle
printf
diese knochenköpfigen Funktionen Ihre Saite lautlos, wenn sie nicht passt. Vielleicht brauchen Sie einecase when length(foo) ...
um ihn herum.Die
to_char()
Funktion dient zum Formatieren von Zahlen:Das
fm
Präfix ("Füllmodus") vermeidet führende Leerzeichen im resultierenden Varchar. Das000
definiert einfach die Anzahl der Stellen, die Sie haben möchten.Weitere Informationen zum Formatbild finden Sie im Handbuch:
http://www.postgresql.org/docs/current/static/functions-formatting.html
quelle
to_char
konvertiert sie in ###. OoSo leicht wie
Verweise:
sqlfiddle: http://sqlfiddle.com/#!15/d41d8/3665
quelle
right()
in 9.1 hinzugefügt wurde