sql >> Databáze >  >> RDS >> Sqlserver

Dotaz:vyhledejte řádky, které nepatří do seznamu hodnot

Věřím, že problém je v tom, že se od vás snažíte najít hodnoty ve výpovědi. Co musíte udělat, je převést váš příkaz in do tabulky a pak můžete určit, které hodnoty se liší.

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)

Lepší alternativou by bylo vytvořit funkci s hodnotou tabulky, která by váš řetězec oddělený čárkami proměnila v tabulku. Nemám po ruce žádný kód, ale mělo by být snadné ho najít na Googlu. V takovém případě budete muset použít pouze níže uvedenou syntaxi.

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

Doufám, že to pomůže



  1. Rozdělit řetězec do řádků Oracle SQL

  2. java.sql.SQLException:ORA-01002:načítání mimo sekvenci

  3. Konfigurace upozornění na e-mail databáze v MS SQL Server

  4. Existuje nějaký bezpečný způsob, jak parametrizovat názvy databází v dotazech MySQL?