SQL Server:与使用不正确的语法错误
问题描述:
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
我有此代码线程。但是是不正确的,我有一些错误。我不明白为什么请帮助。SQL Server:与使用不正确的语法错误
当我使用第1行和select * from t
正在工作,但在这种类型不工作。
答
你不能有两个CTE(公用表达式)接连这样。如果你定义 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
您可以链一前一后多个CTE的中间用逗号分隔,
,只是留下了WITH
关键字为后续CTE的。