хранимая процедура SQL или если все записи отображаются с использованием одного запроса - PullRequest
0 голосов
/ 11 ноября 2011

хорошо, у меня есть ID НАЗВАНИЕ КОНТЕНТА DATEPUBLISH DATEEXPIRED PUBLISH как моя таблица содержимого

Я хочу отобразить все записи в таблице на основе этих условий, используя один запрос.

У меня есть datepublish как текстовое поле, dateExpired в виде текстового поля и опубликовать как флажок.

1) если я введу datepublish, контент будет опубликован без истечения срока действия.

2) если я введу datexpire, контент начнет публиковаться сразу и истечет по истечении срока годности

3) если я введу обе даты, то содержимое начнется с даты публикации и истечет, когда дата истечет

Другое дело, что

4) если я проверил публикацию, то даты будут пропущены.

как я могу отобразить все записи, используя один запрос? . (Я могу сделать это с помощью курсора)

1 Ответ

1 голос
/ 11 ноября 2011
SELECT *
FROM Table
WHERE ((@datePublish IS NULL OR Table.datePublish > @datePublish)
    AND (@dateExpired IS NULL OR Table.dateExpired < @dateExpired))
    OR @published = 1

Если любое из ваших значений даты пусто, вы передаете NULL хранимой процедуре для этого параметра (таким образом, этот параметр не будет ограничивать набор результатов), и @published = 1, если флажок установлен.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...