Oracle:複数行を1行に結合するSQLクエリと実装

OracleのLISTAGG関数を使用して、複数行のデータを1行に連結することができます。LISTAGG関数の構文は以下の通りです:

LISTAGG(expression, delimiter) WITHIN GROUP (ORDER BY order_by_clause)

上記のうち、expressionは連結する列または式、delimiterは区切り文字として使用される文字、order_by_clauseは連結順序を指定する列または式を意味します。

例えば、employeeという表があり、次のデータが含まれているとします。

従業員ID名前苗字1
ジョン
スミス2
ジェーン
ドウ

これらのデータを1行に結合するには、次のクエリを使用します:

SELECT LISTAGG(first_name || ' ' || last_name, ', ') WITHIN GROUP (ORDER BY employee_id) AS full_name
FROM employee;

この出力は、ジョン・スミスとジェーン・ドウになります。

bannerAds