如何在SQLite中写这样的东西?像null一样,如果null不使用。
(@Year IS NULL OR @Year = DATEPART(year, Date)
答案 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!)