Het probleem dat ik geloof is dat je probeert om waarden van jou te vinden in een statement. Wat u moet doen, is uw in-statement omzetten in een tabel en dan kunt u bepalen welke waarden verschillen.
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)
Een beter alternatief zou zijn om een functie met tabelwaarde te maken om uw door komma's gescheiden tekenreeks in een tabel te veranderen. Ik heb geen code bij de hand, maar het zou makkelijk te vinden moeten zijn op Google. In dat geval hoeft u alleen de onderstaande syntaxis te gebruiken.
select
id
from
dbo.SplitStringToTable('2,3,6,7')
where
not exists (select 1 from Tab where Col = id)
Ik hoop dat dit helpt