Postgresでtabをtrimする場合は chr(9) を使用する

Postgresでviewを作成するときにselectした文字列のtrimを行う場合、そのまま tab を以下のように記述しても tab がtrimされません。

[sql] trim(both ' ' from colmun_name); [/sql]

このような場合には、chr(9) のように文字コードで指定することでうまく動作します。

[sql] trim(both chr(9) from colmun_name); [/sql]

また、viewのselect句で複数のtrimを使用している場合、以下のようなエラーが発生しviewを作成することができません。

[sql] create view foo as select trim('aa '), trim('bb ')

-- => Error : ERROR: column "btrim" specified more than once [/sql]

この場合、対象となるtrimをサブテーブルとすることでviewは作成できます。

[sql] create view foo as select tbl_a.col_a, tbl_a.col_b from (select trim('aa ') as col_a, trim('bb ') as col_b) as tbl_a

-- => OK, Time: 0.01sec [/sql]

どうしてこのようなエラーになるのかはわかりませんが、一工夫で対応できますね。

PostgreSQL全機能バイブルはPostgresに関する詳細な説明が行われています。Postgresを運用するのであれば手元に置いておくべき1冊ではないでしょうか。