タイプのtattoo
の列があります。これに3桁のゼロを左に埋めておきたい。 N009は000N009になるはずです。Varcharのゼロから左パディング
to_char(integer/double precsion/int/timestamp,text)
ですが、これを行う方法はありますか?varchar
?
キャスティングvarchar(20)
~integer
も機能しませんでした。私のコードのいくつかは、以下に追加されました:
select tattoo,to_char(tattoo,'0000FM')::varchar as tm from animals where soc_code = 'AURO' limit 100
select tattoo,to_char(tattoo::integer,'0000FM')::varchar as tm from animals where soc_code = 'AURO' limit 100
select tattoo,to_char(cast(tattoo as integer),'0000FM')::varchar as tm from animals where soc_code = 'AURO' limit 100
整数とfunction_to_charの無効な入力構文が存在しないというエラーがスローされます。
私はそれが簡単な方法であることに同意します。しかし、 '000' ||タトゥー結果は常に前面に3つのゼロになります。入れ墨がKN009の場合は00KN009になります。タトゥーがJKN009の場合、結果は0JKN009でなければなりません。 – TechPathi
@TechPathi:わかった。しかし、それは問題が求めていることではありません。他の答えが示唆するように、['lpad()'](https://www.postgresql.org/docs/current/static/functions-string.html)を使ってください。 –