2017-02-13 37 views
1

我試圖將NOT與WITH在T-SQL中結合使用。但不能讓它工作。可能嗎?sql-NOT IN結合使用

實施例:

select name 
    from Persons 
    where id NOT IN 
    (
     WITH result (numbers) 
     AS 
     (
      select number from num 
     ) 
     select numbers from result 
    ) 
+2

當返回NULL時的'NOT IN'結果對許多人來說有點令人驚訝。這就是爲什麼我通常建議使用'NOT EXISTS'來代替。 – jarlh

+1

這是一個練習,或者你可以應用更簡單的方法? –

+2

你爲什麼總是使用'WITH'? – HoneyBadger

回答

4

WITH的關鍵字不能子查詢內使用,它必須是在主查詢之前。

WITH result (numbers) 
AS 
(
    select number from num 
) 
select name 
from Persons 
where id NOT IN 
(
    select numbers from result 
) 
0

我知道你已經得到了答案,但只是想展示另一種解決方法,如果有人對未來感興趣。

SELECT name 
FROM Persons 
WHERE id NOT IN (select number from num)