Sql 按union all使用multiple with语句的步骤
我犯了一个错误 关键字“with”附近的语法不正确。如果此语句是公共表表达式或xmlnamespaces子句,则前一条语句必须以分号结尾。“ 请帮助语法是Sql 按union all使用multiple with语句的步骤,sql,sql-server,Sql,Sql Server,我犯了一个错误 关键字“with”附近的语法不正确。如果此语句是公共表表达式或xmlnamespaces子句,则前一条语句必须以分号结尾。“ 请帮助语法是 WITH L1 AS ( SELECT ) SELECT A FROM L1 UNION ALL SELECT A FROM TABLE UNION ALL WITH L2 AS ( SELECT ) SELECT A FROM L2 UNION ALL WITH L3 AS ( SELECT ) SELECT
WITH L1 AS
(
SELECT
)
SELECT A FROM L1
UNION ALL
SELECT A FROM TABLE
UNION ALL
WITH L2 AS
(
SELECT
)
SELECT A FROM L2
UNION ALL
WITH L3 AS
(
SELECT
)
SELECT A FROM L3
有两种方法可以做到这一点:
With l1 ( a ) as ( Select ... )
, l2 ( a ) as ( ... )
Select ... From ...
Union
Select ... From ...
或
您不能在查询表达式的中间使用<代码> <代码>。<代码>使用< /COD>用于生成中间查询,以便在其他查询之后立即使用(意味着它不能被多个独立查询使用)。 因此,您可能需要以下内容:
WITH CTE_L AS
(
SELECT A FROM L1
UNION ALL
SELECT A FROM L2
UNION ALL
SELECT A FROM L3
)
SELECT * FROM CTE_L
您不需要WITHAS子句。
WITH CTE_L AS
(
SELECT A FROM L1
UNION ALL
SELECT A FROM L2
UNION ALL
SELECT A FROM L3
)
SELECT * FROM CTE_L
WITH L1
AS
(
SELECT ...
),
L2 AS
(
SELECT ...
),
L3 AS
(
SELECT ...
)
// begin final query
SELECT A FROM L1
UNION ALL
SELECT A FROM TABLE
UNION ALL
SELECT A FROM L2
UNION ALL
SELECT A FROM L3