【问题标题】:Is it possible to change only some part of decimal in mysql?是否可以在mysql中只更改小数的一部分?
【发布时间】:2018-07-26 03:31:45
【问题描述】:

我知道这是一个愚蠢的问题,但是否可以仅更改十进制值的整数部分。例如,假设我有数字 12.34,那么我只想更改 12 和 0.34 保持原样。 我有两张桌子。表 X 和表 Y

Table X 
id(int)|  value(decimal)
-------|--------
1      | 12.43
2      |  3.54
3      |102.07

Table Y
id(int)|  value(int)
-------|--------
1      | 32
2      | 76
3      | 8

我想得到如下的结果表 x

Table X 
id    |  value
------|--------
1     | 32.43
2     | 76.54
3     |  8.07

将表 X 的值的 int 部分替换为表 Y 的值。 在mysql中可以吗?(没有任何函数调用,比如字符串替换)。

【问题讨论】:

    标签: mysql replace int decimal


    【解决方案1】:

    要隔离 X 表中值的小数部分,您可以使用以下表达式:

    X.value - FLOOR(X.value)
    

    换句话说,我们可以减去整数部分。

    SELECT
        x.id,
        y.value + x.value - FLOOR(x.value) AS value
    FROM X x
    INNER JOIN Y y
        ON x.id = y.id;
    

    Demo

    【讨论】:

    • 你不想用FLOOR 代替ROUND吗?
    • @RickJames 谢谢。每个人的代码都有味道,包括我的。
    猜你喜欢
    • 1970-01-01
    • 2012-03-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多