k******y 发帖数: 164 | 1 请教大家一个问题:在CASE中,如果各个conditions不是互相排斥的,结果会如何呢?
是否是错误语句呢?举个最简单的例子:
Case
when x>0 then y=0
when x>1 then y=1 /×这前两句就不是互相排斥的×/
when x<=0 then y=-1
else y=NULL
请问这种语句是错误吗?如果不是,如果x=2,那y等于多少啊?
感谢! |
n******r 发帖数: 44 | 2 I think it will stop at the first true branch. So >1 branch will never get
executed. |
m******u 发帖数: 12400 | |
k******y 发帖数: 164 | 4 感谢回复!明白了
【在 m******u 的大作中提到】 : lz原帖里,应该把X>1 放在X>0的前面。
|
s**********o 发帖数: 14359 | 5 这个要GUARD好,否则还是会出错
Case
when x>1 then y=1 /×这前两句就不是互相排斥的×/
when x>0 and x<=1 then y=0
when x<=0 then y=-1
else y=NULL
End |
k******y 发帖数: 164 | 6 请教大家一个问题:在CASE中,如果各个conditions不是互相排斥的,结果会如何呢?
是否是错误语句呢?举个最简单的例子:
Case
when x>0 then y=0
when x>1 then y=1 /×这前两句就不是互相排斥的×/
when x<=0 then y=-1
else y=NULL
请问这种语句是错误吗?如果不是,如果x=2,那y等于多少啊?
感谢! |
n******r 发帖数: 44 | 7 I think it will stop at the first true branch. So >1 branch will never get
executed. |
m******u 发帖数: 12400 | |
k******y 发帖数: 164 | 9 感谢回复!明白了
【在 m******u 的大作中提到】 : lz原帖里,应该把X>1 放在X>0的前面。
|
s**********o 发帖数: 14359 | 10 这个要GUARD好,否则还是会出错
Case
when x>1 then y=1 /×这前两句就不是互相排斥的×/
when x>0 and x<=1 then y=0
when x<=0 then y=-1
else y=NULL
End |
a******g 发帖数: 725 | |