ホームページ > データベース > mysql チュートリアル > SQL Server 2005 で MySQL の GROUP_CONCAT 関数をシミュレートするにはどうすればよいですか?

SQL Server 2005 で MySQL の GROUP_CONCAT 関数をシミュレートするにはどうすればよいですか?

Barbara Streisand
リリース: 2025-01-25 19:27:10
オリジナル
247 人が閲覧しました

How to Simulate MySQL's GROUP_CONCAT Function in SQL Server 2005?
Microsoft SQL Server 2005では、mysqlのgroup_concat関数をシミュレートしたmysql

質問:

MySQLベースのアプリケーションをMicrosoft SQL Server 2005に移行するプロセスでは、MySQLのGroup_Concat関数の関数をコピーする必要があります。この関数は、マルチラインのグループクエリを単一のコンマ分離文字列に組み合わせます。

解決策:

SQLサーバーにはGroup_Concat関数に相当するネイティブはありませんが、複数のテクノロジーの組み合わせを使用してその関数をシミュレートできます。 xml接続を使用:

1つの方法は、文字列をXMLに接続し、結果を抽出することです。

ダイナミックSQL: を使用します

別の方法は、「」「コンピューティングシンボル接続文字列を使用してクエリを動的に生成すること」です。

ユーザーのカスタム関数(UDF)を使用:
<code class="language-sql">WITH ConcatenatedXML AS (
    SELECT empName,
           (
               SELECT ', ' + projID
               FROM project_members
               WHERE empName = e.empName
               FOR XML PATH('')
           ) AS projIDs
    FROM project_members AS e
    GROUP BY empName
)
SELECT empName,
       SUBSTRING(projIDs, 2, LEN(projIDs) - 2) AS group_concat_result
FROM ConcatenatedXML;</code>
ログイン後にコピー

最後に、group_concat:の動作をシミュレートするUDFを作成できます。

このUDFは、次のように使用できます

以上がSQL Server 2005 で MySQL の GROUP_CONCAT 関数をシミュレートするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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