ホームページ >データベース >mysql チュートリアル >2017 より前のバージョンで SQL Server の「string_agg」関数をレプリケートするにはどうすればよいですか?

2017 より前のバージョンで SQL Server の「string_agg」関数をレプリケートするにはどうすればよいですか?

Patricia Arquette
Patricia Arquetteオリジナル
2025-01-20 19:50:09562ブラウズ

How Can I Replicate SQL Server's `string_agg` Function in Versions Before 2017?

2017 年より前の SQL Server で string_agg をエミュレートする

2017 年に導入された

SQL Server の string_agg 関数は、文字列の連結を簡素化します。 ただし、古いバージョンの場合は、別のアプローチが必要です。この記事では、同様の結果を達成する方法を説明します。

目標は、このクエリの機能を複製することです:

<code class="language-sql">SELECT STRING_AGG(t.id, ',') AS id
FROM Table t;</code>

これは、カンマを区切り文字として使用して、「Table」テーブルの「id」列の値を連結します。

2017 より前の SQL Server には string_agg がありません。 このソリューションでは、FOR XML PATH メソッドを使用します。

<code class="language-sql">SELECT STUFF((SELECT ',' + CAST(t.id AS VARCHAR(MAX))
              FROM Table t
              FOR XML PATH('')), 1, 1, '');</code>

これは、カンマ区切りの文字列を巧みに構築します。 FOR XML PATH('') は XML 表現を生成し、実質的にカンマ区切りのリストを作成します。 STUFF() は先頭のカンマを削除します。 これは、string_agg の動作を効果的に模倣します。

この回避策は、新しい string_agg 関数の機能をミラーリングし、古い SQL Server バージョンでの文字列連結に対する実用的な解決策を提供します。

以上が2017 より前のバージョンで SQL Server の「string_agg」関数をレプリケートするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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