我正在尝试修改一个报告,让用户选择“所有值包括null”或“所有值不包括null”。我在where部分放置了一个case表达式。由于两个原因,它无法正常工作:
其中
((CASE WHEN @nullvalue = 1 THEN check_rtn_void_dte end is not null) OR (CASE WHEN @nullvalue = 2 THEN check_rtn_void_dte end is null))
是否有一个我可以使用的运算符将拉空并且在一个语句中不为空?另外,为什么第一种情况是拉动包括空值的所有数据?
答案 0 :(得分:3)
也许这样的事情会更简单......
SELECT *
FROM MyTable
WHERE (@nullvalue = 2 OR check_rtn_void_dte IS NOT NULL)
如果@nullvalue = 2,那么应该取出所有结果,如果@nullvalue是其他的话,那么应该只取出非NULL值。