sql >> Base de Datos >  >> RDS >> Sqlserver

Consulta:encuentra filas que no pertenecen a una lista de valores

Creo que el problema es que estás tratando de encontrar valores tuyos en la declaración. Lo que debe hacer es convertir su instrucción in en una tabla y luego podrá determinar qué valores son diferentes.

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)

Una mejor alternativa sería crear una función con valores de tabla para convertir su cadena delimitada por comas en una tabla. No tengo ningún código a mano, pero debería ser fácil de encontrar en Google. En ese caso, solo necesitaría usar la siguiente sintaxis.

select
 id
from
 dbo.SplitStringToTable('2,3,6,7')
where
 not exists (select 1 from Tab where Col = id)

Espero que esto ayude