Один из способов сделать это - ввести эти значения в параметр таблицы, cte или временную таблицу, а затем использовать левое соединение с фактической таблицей. Другой способ заключается в использовании пункт значения:
Создание и заполнение таблицы выборки (Пожалуйста сохранить нас этот шаг в ваших будущих вопросов)
DECLARE @T as TABLE
(
Id int
)
INSERT INTO @T VALUES (1), (2), (3), (4)
запрос:
SELECT v.Id
FROM (VALUES (1), (2), (3), (5), (6)) AS v(Id) -- Use this instead of the IN operator
LEFT JOIN @T T ON v.Id = T.Id
WHERE T.Id IS NULL
Результаты :
Id
-----------
5
6
Другой вариант - использовать UNION
, чтобы создать список значений:
SELECT v.Id
FROM (
SELECT 1 As Id
UNION
SELECT 2
UNION
SELECT 3
UNION
SELECT 4
UNION
SELECT 5
UNION
SELECT 6
) AS v -- Use this instead of the IN operator
LEFT JOIN @T T ON v.Id = T.Id
WHERE T.Id IS NULL
Поместите эти 1000 ID в таблицу темп. НЕ СУЩЕСТВУЕТ. – jarlh
И если вам неинтересно NULL на идентификаторе, то НЕ ВХОД. – DVT