SQL Server:WITH AS使用不正确的语法错误

时间:2014-11-21 11:14:41

标签: sql-server command

WITH t(num) AS (SELECT MAX(stok) FROM cd)

WITH y AS (SELECT cdno FROM cd,t WHERE cd.stok IN (t.num))

select * from y

我有这个代码线程。但是不正确,我有一些错误。我不是为什么请帮忙。

当我使用第1行并且select * from t正在使用时,但这种类型无效。

1 个答案:

答案 0 :(得分:1)

你不能像这样接着两个CTE(Common Table Expression)。如果要定义两个 CTE,则需要使用以下语法:

WITH t(num) AS 
(
    SELECT MAX(stok) 
    FROM cd
), y AS 
(
    SELECT cdno 
    FROM cd, t 
    WHERE cd.stok IN (t.num)
)
SELECT * 
FROM y

您可以使用逗号,将逗号链接,然后将WITH关键字留给后续的CTE。