Sqlite可选参数

时间:2012-01-24 13:31:24

标签: sql sqlite

如何在SQLite中写这样的东西?像null一样,如果null不使用。

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

1 个答案:

答案 0 :(得分:3)

你可以这样做:

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

IFNULL返回其第一个非null参数。在这种情况下,只要@Year不为空,查询就会将DATEPART(year, Date)@Year进行比较。如果它为空,那么它将DATEPART(year, Date)DATEPART(year, Date)进行比较,这将始终为真。

编辑:请注意,DATEPART不是原生的SQLite方法(OP引用它,因此它可能是他/她正在使用的自定义内容)。本机解决方案是使用strftime("%Y", Date)(感谢@Jason!)