ホームページ > データベース > mysql チュートリアル > Oracle で行をカンマ区切りのリストに集約するにはどうすればよいですか?

Oracle で行をカンマ区切りのリストに集約するにはどうすればよいですか?

Linda Hamilton
リリース: 2025-01-19 17:57:10
オリジナル
457 人が閲覧しました

How to Aggregate Rows into Comma-Separated Lists in Oracle?

Oracle: 行をカンマ区切りのリストに結合する

多くの場合、データ操作では、複数の行を単一のカンマ区切り文字列に集約する必要があります。 オラクルは、これを実現するためのいくつかの方法を提供しています。

方法 1: LISTAGG (Oracle 11.2 以降)

LISTAGG 関数 (Oracle 11.2 以降で利用可能) は、指定された区切り文字を使用して行を効率的に連結します。 その構文は次のとおりです:

<code class="language-sql">LISTAGG(expression, delimiter [, separator]) WITHIN GROUP (ORDER BY order_expression)</code>
ログイン後にコピー

例: countries テーブルから国名のカンマ区切りリストを生成:

<code class="language-sql">SELECT LISTAGG(country_name, ', ') WITHIN GROUP (ORDER BY country_name)
FROM countries;</code>
ログイン後にコピー

方法 2: WM_CONCAT (11.2 より前の Oracle バージョン)

古い Oracle データベース (11.2 より前) の場合、WM_CONCAT 関数は同様の機能を提供します。

<code class="language-sql">SELECT WM_CONCAT(country_name)
FROM countries;</code>
ログイン後にコピー

方法 3: カスタム PL/SQL 関数

LISTAGGWM_CONCAT も十分ではない場合は、カスタム PL/SQL 関数を使用することで柔軟なソリューションが提供されます。 これにより、ループと文字列連結を使用した例で示されているように、カスタマイズされた連結ロジックが可能になります。

以上がOracle で行をカンマ区切りのリストに集約するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート