繁体   English   中英

将两个CTE与UNION组合会导致错误

[英]Combining two CTEs with UNION causes an error

出现以下错误:

'Msg 156,第15级,第1行,第53行
关键字“ WITH”附近的语法不正确。

信息319,第15层,州1,第53行
关键字“ with”附近的语法不正确。 如果此语句是公用表表达式,xmlnamespaces子句或更改跟踪上下文子句,则前一条语句必须以分号终止。

单独运行CTE时可以。 但是,当使用UNION组合时,则会出现错误。

With cte1 as 
(
    select
       .
       .
       .

    Select

    from

)
select

UNION

With cte2 as 
(
    Select

    From
)
Select 

from

在SQL Server中,CTE附加到最外面的select 换句话说,每个查询只有一个,所有定义都必须在select之前。

因此,将它们with合并为一个:

with cte1 as (
      select . . . 
     ),
     cte2 as (
      select . . .
     )
select . . .
from cte1 . . . 
union
select  . . 
from cte2 . . .;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM