ホームページ >データベース >mysql チュートリアル >Oracle SQL で複数の行の列値を連結するにはどうすればよいですか?

Oracle SQL で複数の行の列値を連結するにはどうすればよいですか?

Patricia Arquette
Patricia Arquetteオリジナル
2025-01-23 15:17:16406ブラウズ

How Can I Concatenate Column Values from Multiple Rows in Oracle SQL?

Oracle SQL: 複数の行にわたる列値の結合

このガイドでは、Oracle SQL 内の複数の行の列値を連結する効率的な方法を説明します。 LISTAGG 関数は、簡単な解決策を提供します。

<code class="language-sql">SELECT pid, LISTAGG(Desc, ' ') WITHIN GROUP (ORDER BY seq) AS description
FROM B GROUP BY pid;</code>

このクエリは次のアクションを実行します:

  1. pid によるグループ化: テーブル B 内の行は、pid 列に基づいてグループ化されます。
  2. Desc 値の連結: LISTAGG 関数は、各 Desc グループの pid 列の値を連結します。 区切り文字としてスペース(' ')が使用されます。
  3. seq による順序: 各グループ内の連結順序は、seq 列によって決まります。
  4. 結果の description 列:pid グループの連結文字列が description 列に割り当てられます。

特定の pid 値を取得するには、この結果セットをテーブル A と結合します。

重要な考慮事項: LISTAGGVARCHAR2 列用に最適化されています。 他のデータ型については、代替の Oracle 文字列集計手法を検討してください。

以上がOracle SQL で複数の行の列値を連結するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。