Saya relatif baru mengenal PostgreSQL dan saya tahu cara memasukkan angka dengan angka nol ke kiri di SQL Server tetapi saya kesulitan untuk mencari tahu di PostgreSQL.
Saya memiliki kolom angka di mana jumlah digit maksimumnya adalah 3 dan minnya adalah 1: jika itu satu digit, ia memiliki dua angka nol di sebelah kiri, dan jika itu 2 digit ia memiliki 1, misalnya 001, 058, 123.
Di SQL Server saya dapat menggunakan berikut ini:
RIGHT('000' + cast([Column1] as varchar(3)), 3) as [Column2]
Ini tidak ada di PostgreSQL. Bantuan apa pun akan dihargai.
format()
fungsi yang memungkinkan Anda menggunakannyaformat(Column1,'000') as Column2
.Jawaban:
Anda dapat menggunakan fungsi
rpad
danlpad
untuk memasukkan nomor ke kanan atau ke kiri. Perhatikan bahwa ini tidak bekerja secara langsung pada angka, jadi Anda harus menggunakan::char
atau::text
mentransmisikannya:sumber
printf
, fungsi tulang kepala ini akan memotong senar Anda secara diam-diam sesuai ukuran jika tidak pas. Jadi, Anda mungkin membutuhkannyacase when length(foo) ...
.Ada
to_char()
fungsinya untuk memformat angka:The
fm
awalan ( "fill mode") menghindari spasi terkemuka di varchar yang dihasilkan. Ini000
hanya menentukan jumlah digit yang ingin Anda miliki.Untuk detail lebih lanjut tentang gambar format, silakan lihat manual:
http://www.postgresql.org/docs/current/static/functions-formatting.html
sumber
to_char
ubah menjadi ###. OoSemudah
Referensi:
sqlfiddle: http://sqlfiddle.com/#!15/d41d8/3665
sumber
right()
di 9.1