Ich glaube, das Problem ist, dass Sie versuchen, Werte von Ihnen in Aussagen zu finden. Was Sie tun müssen, ist, Ihre in-Anweisung in eine Tabelle umzuwandeln, und dann können Sie feststellen, welche Werte unterschiedlich sind.
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)
Eine bessere Alternative wäre, eine Tabellenwertfunktion zu erstellen, um Ihre durch Kommas getrennte Zeichenfolge in eine Tabelle umzuwandeln. Ich habe keinen Code zur Hand, aber er sollte bei Google leicht zu finden sein. In diesem Fall müssten Sie nur die folgende Syntax verwenden.
select
id
from
dbo.SplitStringToTable('2,3,6,7')
where
not exists (select 1 from Tab where Col = id)
Hoffe das hilft