sql >> データベース >  >> RDS >> Sqlserver

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

    MySQL

      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
    

    SQL Server(2005以降)

    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
    

    SQL Server(2017+)

      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
    

    Oracle

    Oracleでの文字列の集約/連結について読むことをお勧めします。



    1. 世界をカバーする六角形のグリッドの座標を持つテーブル

    2. MySQLで先頭と末尾の文字を削除する方法

    3. MariaDBで日付に年を追加する6つの方法

    4. SQL Server(T-SQL)のDAY()の例