【发布时间】:2017-11-15 20:28:48
【问题描述】:
在question 之后,我需要将选择结果放入一个 xml 变量中。如何避免出现错误消息“当 FOR XML 和 FOR JSON 子句包含集合运算符时,它们在视图、内联函数、派生表和子查询中无效。要解决此问题,请使用派生表包装包含集合运算符的 SELECT或公用表表达式或视图,并在其上应用 FOR XML 或 FOR JSON。”,拜托?
这里是测试代码:
declare @agent table
(
AgentID int,
Fname varchar(5),
SSN varchar(11)
)
insert into @agent
select 1, 'Vimal', '123-23-4521' union all
select 2, 'Jacob', '321-52-4562' union all
select 3, 'Tom', '252-52-4563'
SELECT
1 AS Tag,
NULL AS Parent,
NULL AS 'Agents!1!',
NULL AS 'Agent!2!AgentID',
NULL AS 'Agent!2!Fname!Element',
NULL AS 'Agent!2!SSN!cdata'
UNION ALL
SELECT
2 AS Tag,
1 AS Parent,
NULL,
AgentID,
Fname,
SSN
FROM @agent
FOR XML EXPLICIT
这里有一个我想做的例子:
Declare @xml xml
...
set @xml= (SELECT
1 AS Tag,
NULL AS Parent,
NULL AS 'Agents!1!',
NULL AS 'Agent!2!AgentID',
NULL AS 'Agent!2!Fname!Element',
NULL AS 'Agent!2!SSN!cdata'
UNION ALL
SELECT
2 AS Tag,
1 AS Parent,
NULL,
AgentID,
Fname,
SSN
FROM @agent
FOR XML EXPLICIT)
【问题讨论】:
标签: sql-server xml cdata