CONCAT_WSでついた括弧「()」を取り除く方法 PostgreSQL

以下のようにCONCAT_WS()を利用して列全体にカンマをつけて取り出そうとした。

SELECT
concat_ws(',', i.*) as 結果
FROM
item i

するとなぜか以下のように括弧がついてしまった。

結果
(1,プリン,25,大阪)
(2,ゼリー,20,大阪)
(3,ゼリー,30,東京)
(4,ティラミス,15,大阪)
(5,ヨーグルト,30,東京)

見栄えが気になったので、括弧を消せないかと模索したところtrim()を使うと消すことができた。

SELECT
trim(concat_ws(',', i.*), '()') as 結果
FROM
item i

■ 結果

結果
1,プリン,25,大阪
2,ゼリー,20,大阪
3,ゼリー,30,東京
4,ティラミス,15,大阪
5,ヨーグルト,30,東京

きっと実際はこんな書き方しないとは思うけれど(SELECTを*で書くのが非推奨なことが多いため)、こんな書き方あるよ、という例でした。

PostgreSQL, SQL

Posted by Nakamoto