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」を、各文字列の間にハイフン (-) の区切り文字を使用して連結します。

出力:

PostgreSQL の concat_ws() 関数 1

スペース区切りで複数の文字列を連結する

SELECT concat_ws(' ', 'Hello', 'PostgreSQL', 'World');

説明:「Hello」、「PostgreSQL」、「World」を各文字列の間にスペースを入れて連結します。

出力:

PostgreSQL の concat_ws() 関数 2

テーブル列での concat_ws() の使用

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

PostgreSQL の concat_ws() 関数 3

スペース区切りで複数の列を連結する

concat_ws() を使用すると、スペース区切りで複数の列を結合した列またはフォーマットされた文字列列を作成できます。

SELECT *, concat_ws(' ', first_name, last_name) AS fullname
FROM employeetbl;

説明:first_name 列と last_name 列を、列の間にスペースを入れて連結し、full_name 列として保存します。

出力:

PostgreSQL の concat_ws() 関数 4

ハイフン区切りで複数の列を連結する

concat_ws() を使用すると、ハイフン (-) 区切りで複数の列を結合した列文字列を作成できます。

SELECT *, concat_ws('-', first_name, last_name,eno::Text) AS employee_detail
FROM employeetbl;

説明:first_name、last_name、eno 列をハイフンで連結し、employee_detail 列として保存します。

出力:

PostgreSQL の concat_ws() 関数 5