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

SQLサーバーでテキストのグループを連結して作成するにはどうすればよいですか?

    ほら、これを試してみて、

    SELECT  a.dept_id, 
            NewTable.NameValues
    FROM    (
              SELECT DISTINCT dept_ID
              FROM tableA
            ) a 
            LEFT JOIN
            (
              SELECT  dept_id,
                    STUFF((
                      SELECT  ', ' + [Name] 
                      FROM    tableA
                      WHERE   ( dept_id = Results.dept_id )
                      FOR XML PATH('')), 1, 1, '') AS NameValues
              FROM    tableA Results
              GROUP BY dept_id
            ) NewTable
            on a.dept_id = NewTable.dept_id
    GO
      

    SQLFiddle デモ

    別のバージョンがあります

    SELECT  a.dept_id, 
            SUBSTRING(d.nameList,1, LEN(d.nameList) - 1) ConcatenateNames
    FROM 
            (
                SELECT DISTINCT dept_id
                FROM   tableA
            ) a
            CROSS APPLY
            (
                SELECT name + ', ' 
                FROM tableA AS B 
                WHERE A.dept_id = B.dept_id 
                FOR XML PATH('')
            ) D (nameList)
    GO
      

    SQLFiddle デモ



    1. プリペアドステートメントを介したINSERTINTOを使用したPDO

    2. 別のクラスのMySQLデータベース構成

    3. PHPがサーバーで動作していません

    4. SQL 2008 クエリのデフォルト スキーマを設定できますか