Проблема, которую я считаю, заключается в том, что вы пытаетесь найти ценности от вас в заявлении. То, что вам нужно сделать, это превратить ваше заявление в таблицу, а затем вы можете определить, какие значения отличаются.
create table #temp
(
value int
)
insert into #temp values 1
insert into #temp values 2
insert into #temp values 3
insert into #temp values 4
select
id
from
#temp
where
not exists (select 1 from Tab where Col = id)
Лучшей альтернативой было бы создание табличной функции для преобразования строки, разделенной запятыми, в таблицу. У меня нет удобного кода, но его легко найти в Google. В этом случае вам нужно будет использовать только следующий синтаксис.
select
id
from
dbo.SplitStringToTable('2,3,6,7')
where
not exists (select 1 from Tab where Col = id)
Надеюсь, это поможет