我想写一个复杂的SWITCH声明SQL (SQL Server 2008 R2)
目标是在声明中写出这样的内容WHERE:
- 如果
myParam = 0,则myColumn = myColumn(0 表示“未定义”,因此我们“忽略”该WHERE语句) - 如果
0 < myParam < 6,那么myColumn = myParam - 如果
myParam >= 6,那么myColumn = [6 ; Infinity]
所以我写道:
WHERE
h.MyColumn = CASE @MyParam
WHEN 0 THEN h.MyColumn
WHEN @MyParam > 0 AND @MyParam < 6 THEN @MyParam
WHEN @MyParam > 6 THEN /* ??? */
首先,我走得好吗?如果是这样,我该如何写第三个WHEN?@MyParam只能等于 0、1、2、3、4、5 或 6,在最后一种情况下,我需要在h.MyColumn > 6.
任何帮助表示赞赏!谢谢