使用null的Visual Studio 2008 Case表达式

时间:2011-07-21 18:51:36

标签: sql

我正在尝试修改一个报告,让用户选择“所有值包括null”或“所有值不包括null”。我在where部分放置了一个case表达式。由于两个原因,它无法正常工作:

  • 我无法提取null的值并且不能同时为null。
  • 在这两种情况下,它最终都会拉出所有值,包括第一个的空值和第二个的空值。

其中

((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))

是否有一个我可以使用的运算符将拉空并且在一个语句中不为空?另外,为什么第一种情况是拉动包括空值的所有数据?

1 个答案:

答案 0 :(得分:3)

也许这样的事情会更简单......

SELECT *
FROM MyTable
WHERE (@nullvalue = 2 OR check_rtn_void_dte IS NOT NULL)

如果@nullvalue = 2,那么应该取出所有结果,如果@nullvalue是其他的话,那么应该只取出非NULL值。