Access задано слишком сложное выражение

Обновлено: 04.11.2024

SQL запроса в самом деле длинный и много OR в условии WHERE .

- не очень понимаю, как можно "переписать логику", состоящую из
?

a OR b OR c OR . OR z

если оно в действительности выглядит так:
fld='a' OR fld='b' OR fld='c' OR fld='d' OR . OR fld='a'

пусть ваше слишком сложное выражение выглядит так:
(A>0 AND C>0) OR (B>0 AND C>0) OR (A>0 AND D>0) OR (B>0 AND D>0)

тогда его можно упростить так:
(A>0 OR B>0) AND (C>0 OR D> 0)

----------------------
если ваше слишком сложное выражение имеет вид
select * from table
where
A>0 OR C>0 OR B>0 OD E>0 OR D>0 OR F>0 OR G>0 OR H>0

попробуйте вынести его наиболее избирательную часть в (хранимый) подзапрос
Запрос1
Select * from table
where
C>0 OR E>0 OR F>0 OR H>0

Запрос2
select * from Запрос1
where
A>0 OR B>0 OR D>0 OR G>0

Читайте также: