Con*_*eak 8 t-sql sql-server sql-server-2008
消息1086,级别15,状态1,行20 FOR XML子句在视图,内联函数,派生表和子查询中包含集合运算符时无效.要解决此问题,请使用派生表语法包装包含set运算符的SELECT,并在其上应用FOR XML.
我运行时遇到此错误:
SELECT
STUFF((
SELECT 1
UNION ALL
SELECT 2
FOR XML PATH('')
),1,0,'') [COLUMN]
Run Code Online (Sandbox Code Playgroud)
我运行时工作正常(没有Union ALL)
SELECT
STUFF((
SELECT 1
FOR XML PATH('')
),1,0,'') [COLUMN]
Run Code Online (Sandbox Code Playgroud)
任何建议为什么UNION ALL不起作用,或如何让它在内部工作STUFF()?
Gas*_*a79 19
有一个简单的解决方法,你应该用另一个select包装你的union查询(或任何派生表).这样做然后通常继续sintax:
select * from
(
SELECT 1 as I
UNION ALL
SELECT 2 as J
) as K
Run Code Online (Sandbox Code Playgroud)
你正在寻找的是这样的东西:
SELECT STUFF((
select * from(
SELECT * from dbo.Table1 as I
UNION ALL
SELECT * from dbo.Table2 as j
) as k
FOR XML PATH('')
),1,0,'')
Run Code Online (Sandbox Code Playgroud)
我查了一下,它完美无瑕