2017-02-13 1 views
1

Я пытаюсь объединить NOT IN с WITH в T-SQL. Но он не может заставить его работать. Является ли это возможным?Sql - НЕ В сочетании с

Пример:

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

Результат «НЕ IN», когда возвращается NULL, является немного удивительным для многих людей. Вот почему я обычно рекомендую использовать «НЕ СУЩЕСТВУЮЩИЕ». – 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) 
Смежные вопросы