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

Viewed 15

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,如果精度不同,相差过大的时候会被转换成字符串进行比较,如果精度差别不大,还是根据数值类型计算。

1 Answers

已经复现,在内部跟进中,有进展会及时同步~