/ / SQL optionnel param - sql, sqlite, sqlite3

Sqlite en option param - sql, sqlite, sqlite3

Comment écrire quelque chose comme ça dans SQLite? Comme param optionnel si null ne pas utiliser.

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

Réponses:

3 pour la réponse № 1

Vous pouvez faire quelque chose comme ça:

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

IFNULL retourne son premier argument non nul. Dans ce cas, la requête comparera @Year à DATEPART(year, Date) aussi longtemps que @Year est non nulle. S'il est nul, il comparera DATEPART(year, Date) à DATEPART(year, Date), ce qui sera toujours vrai.

Modifier: Notez que DATEPART n’est pas une méthode SQLite native (le PO l’a référencée, donc il s’agit d’une chose personnalisée qu’il utilise). Une solution native consiste à utiliser strftime("%Y", Date) (Merci @Jason!)