我有一个格式的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
原文地址:https://www.jb51.cc/mssql/79059.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。