美文网首页
为什么结果看起来是一样的,但是用except就是不一样,SQL

为什么结果看起来是一样的,但是用except就是不一样,SQL

作者: HappyJoo | 来源:发表于2020-03-24 22:33 被阅读0次

今天这个问题真的是搞了我很久,所以记录一下,如果能帮到谁就很好了哈~

首先说一下原因:浮点数 float 为表示很大的数,丢失了部分精度。也就是说,同样是20位小数,decimal 的全是零,但是 float 由于精度不准,后面会开始浮动数字。

两个table,A 和 B,同一条数据,看起来都是:

select click from A
union all
select click from B

得到结果:

1 1230.4444
2 1230.4444

看起来一模一样的,但实际上,他们的精度不一样。

table A 的 click 是 numeric 的,
table B 的 click 是 float

问题就在这里,float 的精度是不那么精确的,所以表面上他们看起来是一样的,但如果你用这样看:

select cast(click as decimal(20,15)) from A
union all
select cast(click as decimal(20,15))from B

实际上他们是:

1 1230.44440000000000
2 1230.44440000000732

当然其他的不一定是 732 啦,反正就是会不一样,所以实际上他们是不一样的。

所以解决办法,要么都变成四位小数,这样后面的732就会被去掉,要么,好像也确实没有什么好办法,有的话麻烦留言哈哈哈哈~~

完!

相关文章

  • 为什么结果看起来是一样的,但是用except就是不一样,SQL

    今天这个问题真的是搞了我很久,所以记录一下,如果能帮到谁就很好了哈~ 首先说一下原因:浮点数 float 为表示很...

  • 第36问:用 mysqlslap 压测的结果,为什么比用 sys

    问题 用 mysqlslap 压测 SQL 的结果,好像比用 sysbench 压测 SQL 的结果更平稳,为什么...

  • 异常处理try,except,raise

    1.try...except: 结果: 我们把可能发生错误的语句放在try模块里,用except来处理异常。exc...

  • 随笔

    看起来好像是每天都过着不一样的生活,但是实际上真的是每天其实都大不一样。 生活的轨迹会是一种什么样的结果,其实我们...

  • 什么是荒谬?

    荒谬就是你用同样的方法期待有不一样的结果。 什么是骗人?就是你明明知道这件事很重要,但是你并没有在这件事情上投入足...

  • 2018.5.5

    《拒绝父母,其实就是在拒绝自己》这篇文章已经读过数遍了,但是今早读起还有不一样的感受。不一样的是用“头脑”还是用“...

  • 内在力量是灵魂

    很多事,表面看起来一样 但是,内心的动力不同, 传达出来的能量也就不同, 结果也往往不一样。 比如锻炼,练完后很累...

  • 努力扮演好自己的角色

    世界是个大舞台,每个人扮演一种角色,角色不一样,活法也不一样。有些角色看起来高大,有些角色看起来渺小。但是,无论你...

  • presto中不同类型的字段关联问题

    今天在使用presto查数据时,遇到一个诡异的问题,相同的sql,每次查询的结果确不一样,sql如下 执行很多次,...

  • 不同的理念,导致不一样的人生

    人是一样的,但是不一样的心态和理念,就产生了不一样的人生。 贪欲和侥幸心理所导致的结果,就是看到别人买彩票中奖,贪...

网友评论

      本文标题:为什么结果看起来是一样的,但是用except就是不一样,SQL

      本文链接:https://www.haomeiwen.com/subject/msqzyhtx.html