doris 3.1.1 中 使用LEAST、GREATEST 函数,相同的变量会因为不同精度返回不一样的结果

Viewed 6

select
LEAST(cast(123.4 as decimal(38,4)),cast(23.45 as decimal(38,4))) as reuslt1,
LEAST(cast(123.4 as decimal(38,4)),cast(23.45 as decimal(38,6))) as reuslt2,
LEAST(cast(123.4 as decimal(36,4)),cast(23.45 as decimal(36,6))) as reuslt3,
LEAST(cast(123.4 as decimal(36,4)),cast(23.45 as decimal(36,7))) as reuslt4
reuslt1|reuslt2 |reuslt3 |reuslt4 |
-------+--------+---------+--------+
23.4500|123.4000|23.450000|123.4000|

同样是 100.2 和20.3 两个数,如果精度相同,会取最小值20.3,如果精度不同,相差过大的时候会被转换成字符串进行比较,如果精度差别不大,还是根据数值类型计算。

0 Answers