PostgreSQL の concat_ws() 関数は、指定された区切り文字を使用して複数の文字列を 1 つの文字列に連結するために使用されます。concat_ws は「Concatenate With Separator」の略で、複数の列または値を各値の間に区切り文字を使用して 1 つの文字列に結合する場合に便利です。
構文 – PostgreSQL の concat_ws() 関数
concat_ws(separator text, string1 text [, string2 text, …])
seperator:
連結された値間のセパレーターとして使用される文字列
string1, string2:
連結する文字列。
例 – PostgreSQL の concat_ws() 関数
ハイフン区切りで複数の文字列を連結する
SELECT concat_ws('-', 'Hello', 'PostgreSQL', 'World');
説明:「Hello」、「PostgreSQL」、および「World」を、各文字列の間にハイフン (-) の区切り文字を使用して連結します。
出力:

スペース区切りで複数の文字列を連結する
SELECT concat_ws(' ', 'Hello', 'PostgreSQL', 'World');
説明:「Hello」、「PostgreSQL」、「World」を各文字列の間にスペースを入れて連結します。
出力:

テーブル列での concat_ws() の使用
concat_ws() を使用すると、テーブル内の異なる列の値を結合できます。例として、「employeetbl」テーブルを使用します。

スペース区切りで複数の列を連結する
concat_ws() を使用すると、スペース区切りで複数の列を結合した列またはフォーマットされた文字列列を作成できます。
SELECT *, concat_ws(' ', first_name, last_name) AS fullname
FROM employeetbl;
説明:first_name 列と last_name 列を、列の間にスペースを入れて連結し、full_name 列として保存します。
出力:

ハイフン区切りで複数の列を連結する
concat_ws() を使用すると、ハイフン (-) 区切りで複数の列を結合した列文字列を作成できます。
SELECT *, concat_ws('-', first_name, last_name,eno::Text) AS employee_detail
FROM employeetbl;
説明:first_name、last_name、eno 列をハイフンで連結し、employee_detail 列として保存します。
出力:
