出现以下错误:
'消息156,第15层,状态1,第53行
关键字“ WITH”附近的语法不正确。Msg 319,第15级,第1行,第53行
关键字“ with”附近的语法不正确。如果此语句是公用表表达式,xmlnamespaces子句或更改跟踪上下文子句,则前一条语句必须以分号终止。'
单独运行CTE可以。但是,当使用UNION组合时,则会出现错误。
With cte1 as
(
select
.
.
.
Select
from
)
select
UNION
With cte2 as
(
Select
From
)
Select
from
答案 0 :(得分:5)
在SQL Server中,CTE连接到最外面的select
。换句话说,每个查询只有一个,并且所有定义都必须在select
之前。
因此将它们合并为一个with
:
with cte1 as (
select . . .
),
cte2 as (
select . . .
)
select . . .
from cte1 . . .
union
select . .
from cte2 . . .;