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

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

Patricia Arquette
リリース: 2025-01-20 19:50:09
オリジナル
507 人が閲覧しました

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 サイトの他の関連記事を参照してください。

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