我正在尝试编写以下SQL。无法将CTE结果分配给varchar变量?
declare @s varchar(max) = (
with c as (select ...)
select a, b, c, d, ....
from ... join c on .... join c on .... join c on ....
order by ...
for xml raw('...'), elements
);
但是,它的语法不正确(下面显示了错误信息)。我必须将其转换为子查询吗?我试图避免在多个地方扩展CTE。
关键字'with'附近的语法不正确。如果此语句是公用表表达式,xmlnamespaces子句或变更跟踪上下文子句,则前面的语句必须以分号结尾。
更新:
的for xml
和order by
使得select @s = ...
看起来很熟悉...... – 2012-03-02 22:13:01
@Abe - _“原创性的秘诀就是忘记来源”__1给你的答案。 – 2013-11-25 14:43:56