我想在我的查询中使用多个CTE,但我无法使其正常工作。以下是我想做的一个例子:
WITH tbl1 AS
(SELECT *
FROM tblStuff)
WITH tbl2 AS
(SELECT tbl1.fldStuff1 ...
FROM tbl1, tblStuff2)
SELECT *
FROM tbl2
答案 0 :(得分:14)
您只需指定WITH
一次。然后,您可以列出以逗号分隔的其他CTE。 E.g:
WITH cte1 AS
(
...
),
cte2 AS
(
...
)
SELECT ...;
答案 1 :(得分:8)
WITH tbl1 AS
(SELECT *
FROM tblStuff),
tbl2 AS
(SELECT tbl1.fldStuff1, tbl1.fldStuff2, tblStuff2.fldStuff1, tblStuff2.fldStuff2
FROM tbl1, tblStuff2)
SELECT *
FROM tbl2
当您使用多个CTE时,不需要额外的WITH,用逗号分隔。