【发布时间】:2016-09-18 05:40:03
【问题描述】:
我知道我可以在 SQLite 查询中使用 CASE 语句,但我不知道如何在 WHERE 子句中构建它。
其实我在一个很长的 WHERE 子句中有这个(这只是问题所涉及的部分):
AND (%d >= (wines.year + wines.maturity)) AND (%d < (wines.year + wines.apogee))
其实我只是想要那个:
AND (%d >= (wines.year + wines.maturity))
=> 如果 wines.apogee 为空
也可以:
AND (%d >= (wines.year + wines.maturity)) AND (%d < (wines.year + wines.apogee))
=> 如果 wines.apogee 不为空
在这种情况下如何使用 CASE 语句来测试 wines.apogee IS NOT NULL 并在这种情况下添加请求的第二部分?
谢谢!
【问题讨论】:
-
嗯,SQLite不能写
... AND ((wines.apogee is NULL) OR (%d < wines.year + wines.apogee))? -
是的,我可以写,但这并不能解决我的问题。下面的 CL 解决方案有效。
标签: sqlite case where-clause