ホームページ >データベース >mysql チュートリアル >同等の LISTAGG を使用して SQL Server の文字列フィールドを集計する方法

同等の LISTAGG を使用して SQL Server の文字列フィールドを集計する方法

Linda Hamilton
Linda Hamiltonオリジナル
2025-01-22 13:12:13238ブラウズ

How to Aggregate String Fields in SQL Server Using a LISTAGG Equivalent?

STRING_AGG 関数を使用して SQL Server の文字列フィールドを集計する

質問: 他のデータベース システムの LISTAGG 関数と同様に、SQL Server クエリの文字列フィールドを効率的に集計するにはどうすればよいですか?

解決策:

SQL Server は、LISTAGG 関数の同等の代替として STRING_AGG 関数を提供します。 その構文は次のとおりです:

<code class="language-sql">STRING_AGG ( expression, separator ) WITHIN GROUP ( ORDER BY order_expression [ ASC | DESC ] )</code>
  • expression: 集計する文字列式。
  • separator: 集計文字列を区切るために使用される文字または文字列。
  • order_expression: 集計文字列をソートするために使用される式。 ASC は昇順、DESC は降順を意味します。

例:

MyTable という 2 つのフィールド FieldAFieldB を含むテーブルがあるとします。次のクエリは、STRING_AGG 関数を使用して、FieldB 内の値をコンマ区切りの文字列に集計し、FieldA でグループ化します。

<code class="language-sql">SELECT FieldA, STRING_AGG(FieldB, ',') WITHIN GROUP (ORDER BY FieldB) AS AggregatedFieldB
FROM MyTable
GROUP BY FieldA
ORDER BY FieldA;</code>

期待される結果:

このクエリは、次の形式のような結果を返します:

<code>FieldA | AggregatedFieldB
-------|-----------------
1       | Value1, Value2, Value3
2       | Value4, Value5</code>
これは、

関数が各 STRING_AGG グループの FieldA 値を単一の文字列に正常に連結したことを示しています。 結果の文字列内の値は、FieldB 句に従って順序付けされることに注意してください。 ORDER BY FieldB

関数を使用すると、SQL Server で文字列フィールドの集計を簡単に実装でき、データ処理とレポート生成が簡素化されます。 STRING_AGG

以上が同等の LISTAGG を使用して SQL Server の文字列フィールドを集計する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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