Как да напиша нещо подобно в SQLite? Като незадължителен параметър, ако не се използва.
(@Year IS NULL OR @Year = DATEPART(year, Date)
Отговори:
3 за отговор № 1Можете да направите нещо подобно:
IFNULL(@Year, DATEPART(year, Date)) = DATEPART(year, Date)
IFNULL връща първия си ненулев аргумент. В този случай заявката ще се сравни @Year
да се DATEPART(year, Date)
толкова дълго, колкото @Year
не е нула. Ако тя е нула, тогава тя ще се сравни DATEPART(year, Date)
да се DATEPART(year, Date)
, което винаги ще е вярно.
Редактиране: Забележи, че DATEPART
не е натиснат SQLite метод (ОП го посочва, така че може да е потребителско нещо, което той използва). Трябва да се използва местно решение strftime("%Y", Date)
(Благодаря @ Jason!)