Oracle SQL: 複数の行にわたる列値の結合
このガイドでは、SQL を使用して Oracle データベース内の複数の行の列値を連結する方法を説明します。集計関数や LISTAGG
関数など、効率的な方法を検討します。
効果的なアプローチの 1 つは、LISTAGG
関数を利用することです。
<code class="language-sql">SELECT pid, LISTAGG(Desc, ' ') WITHIN GROUP (ORDER BY seq) AS description FROM TableB GROUP BY pid;</code>
このクエリは、スペースを区切り文字として使用して、個別の Desc
ごとに TableB
の PID
値を巧みに連結します。 出力は結果を PID
ごとにグループ化し、それぞれに単一の連結文字列を提供します。
PID
の TableA
値を統合するには、結合が必要です:
<code class="language-sql">SELECT a.PID, b.description FROM TableA a INNER JOIN (SELECT pid, LISTAGG(Desc, ' ') WITHIN GROUP (ORDER BY seq) AS description FROM TableB GROUP BY pid) b ON a.PID = b.pid;</code>
この結合クエリは最終結果を提供します。各行には、PID
の TableA
と、対応する Desc
の連結された TableB
文字列が表示されます。
以上がOracle SQLで複数の行の列値を連結するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。