簡體   English   中英

SQL WHILE循環中的公用表表達式?

[英]Common Table Expression in a SQL WHILE loop?

如何在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

你不能那樣做。 CTE的范圍僅適用於下一個查詢。 實際上,它實際上只是它前面的查詢的一部分。 就像內聯視圖(子查詢)是較大查詢的一部分一樣。

在您的情況下,您需要返回到舊的臨時表,表變量等。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM