Sqlite необязательный параметр - PullRequest
0 голосов
/ 24 января 2012

Как написать что-то подобное в SQLite? Как необязательный параметр, если ноль не использовать.

(@Year IS NULL OR @Year = DATEPART(year, Date)

1 Ответ

3 голосов
/ 24 января 2012

Вы можете сделать что-то вроде этого:

IFNULL(@Year, DATEPART(year, Date)) = DATEPART(year, Date)

IFNULL возвращает свой первый ненулевой аргумент. В этом случае запрос будет сравнивать @Year с DATEPART(year, Date), пока @Year не равно нулю. Если он НУЛЬ, тогда он будет сравнивать DATEPART(year, Date) с DATEPART(year, Date), что всегда будет истинно.

Редактировать: Обратите внимание, что DATEPART не является нативным методом SQLite (OP ссылался на него, так что это может быть пользовательская вещь, которую он / она использует). Нативное решение - использовать strftime("%Y", Date) (Спасибо @Jason!)

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