ホームページ > データベース > mysql チュートリアル > SQL クエリを使用してカンマ区切りのリストを生成するにはどうすればよいですか?

SQL クエリを使用してカンマ区切りのリストを生成するにはどうすればよいですか?

Linda Hamilton
リリース: 2025-01-18 22:18:11
オリジナル
515 人が閲覧しました

How Can I Generate Comma-Separated Lists Using SQL Queries?

SQL クエリを使用してカンマ区切りリストを生成します

データベース操作中に、カンマ区切りの値のリストを生成することが必要になることがよくあります。たとえば、ユーザー インターフェイスの特定のリソースに関連付けられているすべてのアプリケーションのリストを表示したい場合があります。各リソースをループしてアプリケーションを取得し、それらを自分で接続することも可能ですが、このアプローチは非効率的で時間がかかります。

幸いなことに、ほとんどの SQL データベースには、組み込みの文字列連結関数と集計関数が用意されています。以下は、一般的に使用されるいくつかの SQL 方言の実装方法です:

MySQL

<code class="language-sql">SELECT r.name,
       GROUP_CONCAT(a.name SEPARATOR ',')
FROM RESOURCES r
JOIN APPLICATIONSRESOURCES ar ON ar.resource_id = r.id
JOIN APPLICATIONS a ON a.id = ar.app_id
GROUP BY r.name</code>
ログイン後にコピー

SQL Server (2005)

<code class="language-sql">SELECT r.name,
       STUFF((SELECT ',' + a.name
               FROM APPLICATIONS a
               JOIN APPLICATIONRESOURCES ar ON ar.app_id = a.id
              WHERE ar.resource_id = r.id
           GROUP BY a.name
            FOR XML PATH(''), TYPE).value('text()[1]','NVARCHAR(max)'), 1, LEN(','), '')
 FROM RESOURCES r</code>
ログイン後にコピー

SQL Server (2017)

<code class="language-sql">SELECT r.name,
       STRING_AGG(a.name, ',')
FROM RESOURCES r
JOIN APPLICATIONSRESOURCES ar ON ar.resource_id = r.id
JOIN APPLICATIONS a ON a.id = ar.app_id
GROUP BY r.name</code>
ログイン後にコピー

オラクル

Oracle はさまざまな文字列の連結および集計オプションを提供しています。使用しているバージョンの特定の構文をよく理解してください。

これらのクエリは、リソースごとにアプリケーションのカンマ区切りリストを効率的に生成するため、単一のクエリで必要な情報を GUI に提供できます。

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

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