3

WHEREIN句のどの項目がデータベースに存在しないかを見つける必要があります。以下の例では、cc33は存在せず、cc33を返すためのクエリが必要です。どうすればいいですか?

SELECT id FROM tblList WHERE field1 IN ('aa11','bb22','cc33')
4

2 に答える 2

4

値をリストではなくテーブルに入れる必要があります。

with list as (
    select 'aa11' as val union all
    select 'bb22' union all
    select 'cc33'
)
select l.val
from list l left outer join
     tbllist t 
     on l.val = t.field1
where t.field1 is null
于 2013-03-04T20:53:01.290 に答える
3

2008 以降の SQl-Server バージョンでは、テーブル値コンストラクターを使用できます。

SELECT field1
FROM
  ( VALUES
     ('aa11'),('bb22'),('cc33')
  ) AS x (field1)
WHERE field1 NOT IN
      ( SELECT field1 FROM tblList ) ;

SQL-Fiddleでテスト済み

于 2013-03-04T20:54:59.440 に答える