如何在while循环中使用公用表表达式(CTE)?以下是“while”语句和“cte”引用错误:
错误:(1)WHILE附近的语法不正确(2)无效的对象名称'cte'
WITH cte AS (
SELECT
t.employee
FROM EmpTable as t
WHERE (t.status = 3)
)
WHILE ((SELECT COUNT(*) FROM cte) <> 0)
--more stuff here
答案 0 :(得分:1)
你做不到。 CTE的范围仅适用于下一个查询。它实际上只是它之前的查询的一部分。就像内联视图(子查询)是更大查询的一部分一样。
在你的情况下,你需要回到旧的临时表,表变量等。