Дозвуковые сложные условные операторы SQL — Условие1 и (( Условие2 и Условие3) ИЛИ (Условие4 и Условие5))

#subsonic

#дозвуковые

Вопрос:

Как мне построить запрос в дозвуковом формате этого формата:

Условие1 и ((Условие2 и Условие3) ИЛИ (Условие4 и Условие5))

Исходный SQL-запрос:

SELECT *
FROM Events
WHERE Deleted=false
AND ((DateModified IS NOT NULL AND DateModified BETWEEN @date1 AND @date2) OR (DateModified IS NULL AND DateCreated BETWEEN @date1 AND @date2))

Я пробовал разные подходы, используя AndExpreession(), OrExpression(), OpenExpression(), CloseExpression(), но, похоже, я не могу получить желаемый результат.

Заранее спасибо за ваш ответ.

Комментарии:

1. Какую версию SubSonic вы используете?

Ответ №1:

Для этого конкретного запроса, почему бы не избавиться от всех круглых скобок и просто позволить приоритету оператора взять верх:

Условие1 и условие2 и условие3 ИЛИ условие1 и условие4 и Условие5