2017-11-27 6 views
-1

私はSQLについての最適な質問があります。sql-statementの複数のand- and or-条件を減らすにはどうすればよいですか?

このSQL構文削減する方法があります:

Select * from TABLE 
where 
COLUMN = 'abc' or 
COLUMN = 'def' or 
COLUMN = 'xau' or 
COLUMN = 'def' or 
COLUMN = 'eag' or 
COLUMN = 'dff' or 
COLUMN = 'www' 
+0

秒1は、任意の値に当てはまります。 – James

+0

申し訳ありませんが変更!= to = –

答えて

1

はこれを試してみてください

Select * from TABLE 
where 
COLUMN != 'abc' and 
COLUMN != 'def' and 
COLUMN != 'xau' and 
COLUMN != 'def' and 
COLUMN != 'eag' and 
COLUMN != 'dff' and 
COLUMN != 'www' 

と第二のSQL構文は:

複数のOR条件を使用して書き換えることができます。

複数のAND条件で、同じ列に2つ以上の値がある可能性がある場合は、教えてください。

+0

私は私の質問を編集しました。おそらく、2番目のSQL文も解決できます。 –

+0

詳細を追加しました。 – Sunil

0

ブール代数を使用:

第一:(!x)AND(!y)..AND(!z) == !(x or y...or z)

意味:

Select * from TABLE WHERE COLUMN NOT IN ('abc','def',...) 





    2nd: (!x)or(!y)..or(!z)==!(x AND Y AND ..Z) 
however the intersection of x AND Y ... AND Z is the empty set. 
So (!x)or(!y)..or(!z)==!(x AND Y AND ..Z) = !(False) = True. 

Meaning: 

    Select * from TABLE //no WHERE CLAUSE NEEDED 
関連する問題