合并整个表中的特定行

时间:2018-08-21 01:33:38

标签: sql sql-server

我正在开发一个Web应用程序,正在考虑如何合并整个表中的特定行。

这里是例子

原始数据:

Name     Date
-------------------
Jason    Jul 2017
Tom      Jun 2018
Andy     Jun 2018
Mary     Jun 2018
Alex     Feb 2018
David    Aug 2018   

我想将相同的结果放入一个大单元格,就像我们在Excel中可以做的一样

Name     Date
------------------
Jason    Jul 2017
Tom   
Andy     Jun 2018
Mary  
Alex     Feb 2018
David    Aug 2018   

在SQL Server中这可能吗?或者我需要在java或css层中进行此更改

1 个答案:

答案 0 :(得分:1)

您想要的确切输出可以在表示层中得到更好的处理,例如使用诸如PHP,Java等之类的东西。也许与SQL Server中您的输出最接近的是按日期对名称进行组连接,如下所示:

SELECT
    t1.Date,
    STUFF((
          SELECT ',' + t2.Name
          FROM yourTable t2
          WHERE t1.Date = t2.Date
          FOR XML PATH(''), TYPE).value('.', 'NVARCHAR(MAX)'), 1, 1, '') AS Names
FROM (SELECT DISTINCT Date FROM yourTable) t1;

enter image description here

Demo