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

複数の行を連結する方法は?

    SQL Server 2005以降の場合は、STUFF関数とFOR XML PATHを使用します:

    WITH summary_cte AS (
       SELECT Employee.Id, SUM(Pay) as Salary
         FROM Employee
         JOIN PayCheck ON PayCheck.EmployeeId = Employee.Id
     GROUP BY Employee.Id)
    SELECT sc.id, 
           sc.salary,
           STUFF((SELECT ','+ yt.data
                    FROM your_table yt
                   WHERE yt.id = sc.id
                GROUP BY yt.data
                 FOR XML PATH(''), TYPE).value('.','VARCHAR(max)'), 1, 1, '')
      FROM summary_cte sc
    

    ただし、カンマ区切りの文字列に変換するデータの場所と、それが従業員レコードとどのように関連しているかについての詳細が不足しています...



    1. テーブルが更新されたときにMySQLトリガーからメールを送信する

    2. 月曜日から日曜日までの曜日で並べ替える

    3. SQL Serverに監査テーブルを実装するための提案はありますか?

    4. PostgreSQLログを最大限に活用する方法