• 0
Авторизация  
walexw

К знатокам SQL

Вопросы

Вопрос к знатокам SQL: как делается такой трюк?
Есть процедура в БД с двумя входящими параметрами.
Параметры D1 и D2 - это диапазон дат, за который надо выбрать записи из таблицы.
Если оба введены, то вопросов нет, в WHERE пишу FieldDate >= D1 AND FieldDate <= D2
Но D1 и D2 могут быть пустыми (оба или по одному), т.н. открытый диапазон.
Как должен быть написан запрос в процедуре, что-бы учитывать это в WHERE для всех случаев?
Спасибо.
(вариант от текущей даты вычитать (добавлять) 100 лет вместо Null - не подходит)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

6 ответов на этот вопрос

  • 0

точнее
 

WHERE  
  ((FieldDate >= D1) OR (D1 IS NULL)) AND ((FieldDate <= D2) OR (D2 IS NULL))

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
  • 0
9 минут назад, enatechno сказал:

точнее

лень было писать полностью, первая часть там копи-паст приведенного мной :)

Изменено пользователем kami

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
  • 0
24 минуты назад, kami сказал:

лень было писать полностью

"Умный программист — это хорошо, а умный ленивый программист — ещё лучше." ;)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
  • 0

Только учти, что такой вариант не будет индексы использовать.. т.е. скажется на скорости работы запроса..

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти
Авторизация  

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу