Mysql - 结果集与查找两个数字之间的差异不符合预期[关闭]

Posted

技术标签:

【中文标题】Mysql - 结果集与查找两个数字之间的差异不符合预期[关闭]【英文标题】:Mysql - Result set not as expected in finding difference between two numbers [closed] 【发布时间】:2020-10-06 15:55:10 【问题描述】:

预期输出为正数,但尽管给出了最高数 - 最低数,但仍有负差。

【问题讨论】:

你不能那样使用列,你可以使用用户定义的变量或者使用原始代码 请看:Why should I provide an MCRE for what seems to me to be a very simple SQL query? new price 在通常的引号中是一个 string,从该 string 中减去一个数值可能会导致意外结果 【参考方案1】:

您的代码有 2 个问题:

    您不能使用像new price 这样的派生列来执行任何 计算 不要使用单引号将列名/别名括起来。您可以安全地使用反引号。'new price' 之类的列在用于执行数值计算时被评估为 0,因为它被视为字符串文字 'new price'

所以你的代码可以这样写:

SELECT name,
       unit_price,
       unit_price * 1.1 AS `new price`, 
       unit_price * 1.1 - unit_price AS `diff price`,  -- or unit_price * 0.1 AS `diff price`
FROM products

【讨论】:

以上是关于Mysql - 结果集与查找两个数字之间的差异不符合预期[关闭]的主要内容,如果未能解决你的问题,请参考以下文章

查找 SQL 表之间的差异

在 PostgreSQL 中查找两个大表之间的差异

使用python查找两个csv文件列之间的差异

查找两个经度纬度之间的距离-Mysql

查找 .mat 文件之间的所有差异

查找列表中连续数字之间的差异(Python)