Problemet tror jag är att du försöker hitta värderingar från dig i ett uttalande. Vad du behöver göra är att förvandla din insats till en tabell och sedan kan du avgöra vilka värden som är olika.
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)
Ett bättre alternativ skulle vara att skapa en tabellvärderad funktion för att förvandla din kommaavgränsade sträng till en tabell. Jag har ingen kod till hands, men den borde vara lätt att hitta på Google. I så fall behöver du bara använda syntaxen nedan.
select
id
from
dbo.SplitStringToTable('2,3,6,7')
where
not exists (select 1 from Tab where Col = id)
Hoppas detta hjälper