私は比較的PostgreSQLに慣れておらず、SQL Serverで数値を左にゼロで埋める方法を知っていますが、PostgreSQLでこれを理解するのに苦労しています。
私は最大桁数が3で最小が1である数字列があります.1桁の場合は左に2つのゼロがあり、2桁の場合は1です。 001、058、123。
SQL Serverでは、次を使用できます。
RIGHT('000' + cast([Column1] as varchar(3)), 3) as [Column2]
これはPostgreSQLには存在しません。任意の助けをいただければ幸いです。
rpad
およびlpad
関数を使用して、それぞれ数値を右または左に埋め込むことができます。これは数値に対して直接機能しないため、::char
または::text
を使用してキャストする必要があります。
SELECT RPAD(numcol::text, 3, '0'), -- Zero-pads to the right up to the length of 3
LPAD(numcol::text, 3, '0'), -- Zero-pads to the left up to the length of 3
FROM my_table
to_char()
関数は、数値をフォーマットするためにあります。
select to_char(column_1, 'fm000') as column_2
from some_table;
fm
プレフィックス(「フィルモード」)は、結果のvarcharの先頭のスペースを避けます。 000
は、必要な桁数を定義するだけです。
psql(9.3.5) helpに「help」と入力します。 postgres => sample_numbers(nr)as( postgres( >値(1)、(11)、(100) postgres(>) postgres-> to_char(nr、 'fm000') postgres-> from sample_numbers; to_char --------- 001 011 100 (3行) postgres =>
フォーマット画像の詳細については、マニュアルを参照してください。
http://www.postgresql.org/docs/current/static/functions-formatting.html