Access задано слишком сложное выражение
Обновлено: 21.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
Читайте также: