【发布时间】:2018-10-17 13:07:23
【问题描述】:
我的问题与SQL Switch/Case in where clause非常相似。
我得到参数。如果预计value为NULL,则需要获取所有的值,否则需要用value进行过滤。
我正在尝试在 SQL 中执行此操作:
WHERE param
CASE
WHEN #{value} IS NULL THEN {IS NOT NULL}
ELSE =#{value}
END
我应该如何更正这个 SQL 请求?
WHERE param IS NOT NULL // all values if **value** is NULL
WHERE param = #{value} // i.e. value = 'data'
【问题讨论】:
-
你能用例子解释的更清楚吗?
-
'param' 是表中的某个列,'value' 我在这个请求之前得到。如果 value = null 我应该获取所有值,如果例如 value = 'data' 我需要过滤。
-
所以如果参数为空,你想做什么
-
如果值为 null 我不过滤;参数不为空
-
如果值为 null 则返回所有不为 null 的参数?
标签: sql switch-statement case