是否可以在案例中包含案例陈述,当时为真,然后是陈述?
case when true then
case when false then 'test0'
else 'test1'
end
else
case when false then 'test2'
else 'test3'
end
end
请注意确定将结束语句放在何处?
答案 0 :(得分:4)
绝对。 Case表达式不知道它嵌入在另一个case表达式中。每个Case表达式都需要一个End关键字:
Select Case
When Foo = Bar Then 'Test0'
Else Case
When Gamma = Theta Then 'Test1'
End
End
另一种方法是简单地堆叠表达式
Select Case
When Foo = Bar Then 'Test0'
When Gamma = Theta Then 'Test1'
Else 'Blah'
End
当像这样堆叠时,表达式按照它们被写入的顺序执行,直到一个当表达式求值为true时(即,你得到其中一个Then表达式)。
答案 1 :(得分:1)
使用括号或缩进(或两者)可能会很好,因此很明显case
与哪个end
有关。
case when true then
( case when false then 'test0'
else 'test1'
end
)
else
( case when false then 'test2'
else 'test3'
end
)
end
答案 2 :(得分:1)
您的代码看起来很不错。因为解释器能够理解嵌入,所以可以将End End放在一起。