SELECT * FROM   (SELECT DISTINCT SECTION_NAME FROM SHP_PD_INFO) A CROSS APPLY (SELECT Re = STUFF((SELECT     FACT_DATE AS v FROM SHP_PD_INFO t WHERE     SECTION_NAME = A.SECTION_NAME FOR XML AUTO,TYPE).query('<r>{for $i in /t/@v return concat(",",string($i))}</r>' ).value('/r[1]', 'nvarchar(max)'), 1, 1, '')) B
以上的这个SQL语句,在SQL2005中新建查询然后执行是可以的,但是如果随便打开库中的一个表将上面的SQL语句执行,就会报错.而且在.net 中调用也会出错.错误内容如下:
","附近的where有语法错误.点继续后就报如下信息.select 失败,因为下列SET选项的设置不正确:'ARITHABORT'.请确保SET选项可正确用于计算列和/或查询通知和/或XML数据类型方法的索引视图和/或索引.但是如果新建一个查询就没有这个问题,而且在家里的机器上试也没问题.但是在公司就有这个问题.公司是正版SQL2005SP1.望高手解决,谢谢