gpt4 book ai didi

MySQL计算不在x和y之间的值之间的差异

转载 作者:行者123 更新时间:2023-11-29 17:56:11 25 4
gpt4 key购买 nike

我有一个 mysql 查询(大致如下),它查找表以确定不属于推荐准则范围内的值;

SELECT 
location.name, test.name, result.value
FROM
results
INNER JOIN
location ON location.id = results.locationid
INNER JOIN
tests ON tests.id = results.testid
WHERE
result.value NOT BETWEEN test.lowerlimit AND test.upperlimit
GROUP BY location.name

这会返回超出范围的测试,然后我计划计算推荐范围和我得到的结果之间的差异。我遇到的问题是,有时超出范围会低于范围,有时会高于范围,所以我不能这样做( result.value - test.upperlimit )。

有什么办法可以包含类似 IF 的内容吗?那里的语句,说明结果是否为 < lowerlimit然后计算results.value - test.lowerlimit ,或者如果是 > upperlimit然后计算results.value - test.upperlimit

最佳答案

看看 MySQL control flow functions

以下是使用 IF 函数的示例:

SELECT 
location.name,
test.name,
IF (result.value < test.lowerlimit, results.value - test.lowerlimit, results.value - test.upperlimit)
FROM
results
INNER JOIN
location ON location.id = results.locationid
INNER JOIN
tests ON tests.id = results.testid
WHERE
result.value NOT BETWEEN test.lowerlimit AND test.upperlimit
GROUP BY location.name

您也可以在 SELECT 中使用 CASE 语句,如下所示:

CASE 
WHEN result.value < test.lowerlimit THEN
results.value - test.lowerlimit
ELSE
results.value - test.upperlimit
END

关于MySQL计算不在x和y之间的值之间的差异,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48800194/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com