Country、State、およびその他のデータ フィールドを持つテーブル Address について考えてみます。国、州の組み合わせが (US, IL)、(US,LA)、(IND,DEL) のレコードを除くすべてのレコードを取得したい
クエリは次のようになります
Select * from Address a
where not exists
(
select Country,State
(select 'US' as Country, 'IL' as State
union
select 'US' as Country, 'LA' as State
union
select 'IND' as Country, 'DEL' as State
) e
where e.Country != a.Country and e.State != a.state
)
どうすれば簡単に達成できますか (country,state のユニオンの組み合わせを単純なサブクエリに置き換えるには)? 合計データはそれほど大きくないので、今のところパフォーマンスについてはほとんど気にしていません。
テーブル変数を作成し、構文への挿入を使用してそこにすべてのリテラルの組み合わせを追加し、存在しないテーブル変数を使用できることは知っていますが、小さな要件(2つの変数に存在しない)にはやり過ぎだと感じています。