我有疑问:
select distinct ',' + quotename(CONVERT(VARCHAR(11), createdate, 113))
from CRM
for xml path('');
它运行良好并给我这个字符串:
,[22 Jul 2013],[28 Jul 2013],[03 Aug 2013],[13 Aug 2013],[30 Jul 2013],[23 Jul 2013],[31 Jul 2013],[19 Jul 2013],[05 Aug 2013],[12 Aug 2013],[26 Jul 2013],[18 Jul 2013],[09 Aug 2013],[20 Jul 2013],[25 Jul 2013],[08 Aug 2013],[11 Aug 2013],[07 Aug 2013],[29 Jul 2013],[06 Aug 2013],[02 Aug 2013],[24 Jul 2013],[17 Jul 2013],[14 Aug 2013],[01 Aug 2013],[21 Jul 2013],[10 Aug 2013],[04 Aug 2013],[27 Jul 2013],[16 Jul 2013]
问题是它不是将列排序为a Date
,而是作为字符串排序。我尝试对内部查询中的列进行排序:
select distinct ',' + quotename(dt)
from
(select
CONVERT(VARCHAR(11), createDate, 113) as dt
from crm
order by dt asc)
for xml path('');
但没有成功,它说:
错误 1033:ORDER BY 子句在视图、内联函数、派生表、子查询和公用表表达式中无效,除非还指定了 TOP 或 FOR XML。
有人请帮我解决这个问题吗?非常感谢您,感谢您的帮助!