PostgreSQLのSQL文内で文字列を結合する

どうも、ピルティです。

開発でポスグレを使っていますが、カラムを更新するときに文字列動詞を結合する必要があったのでちょっと調べてみました。
一旦取り出して実装で結合しても良かったんですが、パフォーマンス的にも見た目にもダサいので、SQL文内でスマートにやる方法を探したところ、やっぱり有りました。

以下のようにしたらできます。

update table_name(column_name) values ('hoge' || 'fuga');

これで、「hogefuga」という文字列がカラムに登録されます。
つまり、文字列同士を「||」でつないであげるとうまくいきます。

注意するとしたら、文字列同士でなければといけないということです。
数値同士をそのままつなげようとしてもうまく行きません。そんな時は数値をキャストしてあげましょう。

update table_name(column_name) values (1::text || 2::text);

これでできます。
(実際は数値データの入っているカラム名を指定すると思いますが、同じようにキャストすれば文字列として結合できます。)