SQL中需要不寻常的输出格式

我有一个格式的sql表;
Name   Date         Value
ABC    1/21/2015    52
ABC    1/22/2015    12
ABC    1/23/2015    32
DEF    1/21/2015    78
DEF    1/22/2015    53
etc...

为了与遗留程序兼容,我需要格式化文本文件,如下所示:

ABC
1/21/2015,52
1/22/2015,12
1/23/2015,32
DEF
1/21/2015,78
1/22/2015,53

任何的意见都将会有帮助.

解决方法

一种选择是使用UNION为结果集创建标题行,然后进行排序,使它们出现在每个Name组的顶部.您可以使用计算列来执行此操作,该列将这些生成的行标识为标题.
SELECT CASE WHEN t.Header = 1
       THEN t.Name
       ELSE CONCAT(t.Date,',t.Value)
       END
FROM
(
    SELECT disTINCT Name,NULL AS Date,NULL AS Value,1 AS Header
    FROM yourTable
    UNION ALL
    SELECT Name,Date,Value,0 AS Header
    FROM yourTable
) t
ORDER BY t.Name,t.Header DESC,t.Date

相关文章

SELECT a.*,b.dp_name,c.pa_name,fm_name=(CASE WHEN a.fm_n...
if not exists(select name from syscolumns where name=&am...
select a.*,pano=a.pa_no,b.pa_name,f.dp_name,e.fw_state_n...
要在 SQL Server 2019 中设置定时自动重启,可以使用 Window...
您收到的错误消息表明数据库 'EastRiver' 的...
首先我需要查询出需要使用SQL Server Profiler跟踪的数据库标...