【 TiDB 使用环境】生产环境 /测试
【 TiDB 版本】6.1.4
【复现路径】
创建一张表
CREATE TABLE dec (
dec1 DECIMAL(28,4),
dec2 DECIMAL(28,4)
)
插入一条数据
insert into dec
(dec1, dec2)
values (176.9900, 176.1100)
查询一
WITH kc AS(
SELECT CAST(IFNULL(dec1,0) - IFNULL(dec2,0) AS DECIMAL(28,2)) book_sum_1
FROM test.dec
)
查询二
SELECT * FROM kc;
SELECT CAST(IFNULL(dec1,0) - IFNULL(dec2,0) AS DECIMAL(28,2)) book_sum_1
FROM test.dec mi;
不启用tiflash时,上述两个查询的结果是正确的,都是0.88
【遇到的问题】
启用tiflash
ALTER TABLE dec SET tiflash replica 3;
1 查询一返回的结果期望是0.88,结果变成了 0.89;查询二返回的是期望的 0.88
2 如果cast as 后面的decimal(28,2) 改成decimal(28,1),查询一返回的结果期望是0.9,结果返回了0.8,查询二是正确的返回的0.9