首先 循环@abc从 10 到100, 在每一次循环中 然后根据 @abc/30 的 floor函数值,计算 @xyz 的值。每次循环中
floor(@abc/30) 的值 为 0 时,@xyz 为@abc*5,
floor(@abc/30) 的值 为 1 时,@xyz 为@abc*10,
floor(@abc/30) 的值 不为 1和0 时,@xyz 为 @abc*20,
并把 @xyz 付值给 @abc 再进行循环,直到最后退出循环,
最后为500
注意 case when的用法,case when 结束 用end 是一个语句块,而begin 。。。end 是外面循环体的语句块
while @abc<=100
第一次循环进入when 0 then @abc*5,得到@abc=50
第二次循环进入when 1 then @abc*10,得到@abc=500
此时@abc<=100 不成立,跳出循环,结束
xyz第一次是50 然后赋值给abc也是50 然后满足条件abc<=100 while继续循环 floor(abc/30)这个就是1了 然后xyz=50*10=500 嘿嘿
你那不是上面还有个循环嘛? 第一次得出的是50 小于100 还得执行一次啊!~
所以是500!~