sql >> Database >  >> RDS >> Sqlserver

Query:vind rijen die niet bij een zoeklijst horen

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



  1. Is er prestatiewinst bij het indexeren van een boolean-veld?

  2. Specificeer dblink kolomdefinitielijst van een lokaal bestaand type

  3. Hoe te controleren of DateTime-object niet is toegewezen?

  4. Tijdelijke tabel maken in opgeslagen procedure