sql >> Databasteknik >  >> RDS >> Sqlserver

Fråga:hitta rader som inte tillhör en lista med värden

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



  1. Handledning om SQL (DDL, DML) om exemplet på MS SQL Server-dialekt

  2. postgresql gör befintlig primärnyckel automatisk inkrementering vid infogning

  3. MySQL:När behövs verkligen Flush Privileges i MySQL?

  4. Kontrollera kodantändningsfrågefel istället för att visa dem för användaren