/ / Sqlite незадължително param - sql, sqlite, sqlite3

Sqlite незадължително param - sql, sqlite, sqlite3

Как да напиша нещо подобно в 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!)