1. ホーム
  2. sql-server

[解決済み] sql serverでgroup_concatを使ったクエリを作成する方法 [duplicate].

2022-07-23 13:29:02

質問

私は、SQLサーバーで、私たちが使用できないことを知っています Group_concat 関数を使用できないことは知っていますが、ここで一つの問題が発生しました。 Group_Concat 私のクエリ。私はそれをグーグル、いくつかのロジックを発見したが、それを修正することはできません。私のSQLクエリは次のとおりです。

select  m.maskid,m.maskname,m.schoolid,s.schoolname,
md.maskdetail
from tblmask m join school s on s.id = m.schoolid 
join maskdetails md on m.maskid = md.maskid
order by m.maskname ;

結果は次のようになります。

最初の3行を見ると、maskid, maskname, schoolid, schoolnameは同じですが、maskdetailは異なるので、最後の列にmaskidと同じようにすべてのmaskdetailを含むことができるそのための1行にしたいです。

私は私の出力のようにしたい

というわけで、そのためのクエリを作りながら、私を助けてください。

事前にありがとうございます。

どのように解決するのですか?

クエリです。

SELECT
      m.maskid
    , m.maskname
    , m.schoolid
    , s.schoolname
    , maskdetail = STUFF((
          SELECT ',' + md.maskdetail
          FROM dbo.maskdetails md
          WHERE m.maskid = md.maskid
          FOR XML PATH(''), TYPE).value('.', 'NVARCHAR(MAX)'), 1, 1, '')
FROM dbo.tblmask m
JOIN dbo.school s ON s.ID = m.schoolid
ORDER BY m.maskname

追加情報です。

SQL Server の世界における文字列集計