下面这个sql语句
with a as (
select rand()-0.5 val
from (values row(1),row(2),row(3),row(4),row(5),row(6),row(7),row(8),row(9),row(10)) a)
select
a.val,
if(a.val<0,0,a.val) val2
from a
的输出是这样
+-----------------------+-----------------------+
| val | val2 |
+-----------------------+-----------------------+
| 0.24151489393926684 | 0 |
| -0.3395825045551942 | -0.12570135539928579 |
| 0.45816259361632405 | -0.034902425049713304 |
| -0.17826328955428983 | 0 |
| -0.39825581004680677 | -0.4624905082979151 |
| 0.08190227074725764 | -0.2607922346897351 |
| 0.30509012919393375 | 0 |
| -0.37613345298556 | -0.3923464928682395 |
| -0.049284304072413854 | -0.19905711216764255 |
| 0.21286050296654968 | -0.33121206781939794 |
+-----------------------+-----------------------+
希望的结果是,当val小于0时,val2应该等于0,为什么有些行不是这样?
墨值悬赏

评论



