Показать сообщение отдельно
Старый 24.10.2005, 16:23   #1  
Prof is offline
Prof
Участник
 
732 / 64 (4) ++++
Регистрация: 18.10.2002
Адрес: Москва
Почему при преобразовании запроса Аксапта добавляет скобки?
Например, есть запрос:
select table1
where table1.field1 == 1 || table1.field1 == 2 || table1.field1 == 3

К SQL Server'у (к Oracle не знаю, но подозреваю нечто похожее) идет уже такой запрос:
select * from table1
where (((table1.field1 = 1) or (table1.field1 = 2)) or table1.field1=3)

Ну вот что-то в этом духе. И еще там фильтрация компании, но не об этом речь.
Т.е. получаем кучу скобок просто на ровном месте, причем не просто скобок, а вложенных в друг друга.
SQL Server не очень-то любит вложенные условия, во всяком случае, как показали эксперименты, 200 вложенных условий уже не переваривает. Настройку на сервере, которая отвечала бы за это число, я не нашел, подозреваю что ее нет.
Оставив в стороне безусловно здравые рассуждения о способах корректного построения запросов, скажите мне как наложить на запрос 200 условий путем их перечисления?