我有一张表,如下所示
如果" StartDate"我希望用逗号分隔列。字段与下面的字段相同
EmpID OtherReportID Status StartDate
371 2,381,2 0 2013-11-05 17:59:00:000
371 381 0 2013-11-08 17:59:00:000
371 2 0 2013-11-10 17:59:00:000
371 381 0 2014-08-15 00:00:00:000
我尝试了下面的代码,只要把数字放在同一个
select DENSE_RANK() over(order by startdate) dd,* from Emp_tb_Eob_OtherReportingManager;
答案 0 :(得分:0)
您需要做的是相当于MySQL中的group_concat()
。
答案 1 :(得分:0)
GROUP_CONCATE(),这是你必须要看的。
试试这个;
SELECT EmpID , GROUP_CONCAT(OtherReportID SEPARATOR ', ')
FROM Emp_tb_Eob_OtherReportingManager GROUP BY DATE(StartDate);
注意:结果列中限制为1024个字节。
更新SQL :检查this是否可以在SQL中执行相同的操作。希望它有所帮助.. !!!!
答案 2 :(得分:0)
此查询将提供预期结果。
它还在SQL SERVER 2008中工作
SELECT
T1.EmpID, T1.Status, T1.StartDate ,
OtherReportId =
stuff((
SELECT
', ' + T2.OtherReportId
FROM Employee T2
WHERE
T2.StartDate = T1.StartDate
GROUP BY T2.OtherReportId
FOR XML PATH(''), TYPE).value('.', 'varchar(max)'
), 1, 2, '')
FROM Employee T1 GROUP BY T1.StartDate