Как уменьшить это многократное и-или-условия в SQL-заявлении?

У меня есть вопрос об оптимизации SQL.

Есть ли способ уменьшить этот синтаксис SQL:

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

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

2 ответа

Решение

Попробуй это:

Условие множественного ИЛИ может быть переписано с использованием:

Select * from TABLE 
where 
COLUMN not in('abc','def','xau','def','eag','dff','www')

Несколько И условие, можете ли вы просветить меня, когда это возможно, что один и тот же столбец имеет более 1 значение?

ИСПОЛЬЗОВАНИЕ Boolean ALGEBRA:

первая: (!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
Другие вопросы по тегам