gpt4 book ai didi

sql - 从 2 列中获取最高/最低值

转载 作者:行者123 更新时间:2023-12-05 09:25:47 28 4
gpt4 key购买 nike

我有这张表:

  BP1             BP2
-----------------------------
140 80
153 88
90 162
98 214
98 69

我想将其组织成两列:一列是高 BP,另一列是低 BP:

预期输出:

BP_High        BP_Low
---------------------------------
140 80
153 88
162 90
214 98
98 69

*所有值都是整数

我试过:

 SELECT CASE WHEN BP1 > BP2 THEN BP1
WHEN BP1 < BP2 THEN BP2 END BP_High,
CASE WHEN BP1 > BP2 THEN BP2
WHEN BP1 < BP2 THEN BP1 END BP_Low
FROM Table

它不起作用...它让我很困惑:

BP_High        BP_Low
---------------------------------
140 80
153 88
90 162
98 214
98 69

我也试过:

 SELECT CASE WHEN BP1 > BP2 THEN BP1
ELSE BP2 END BP_High,
CASE WHEN BP1 > BP2 THEN BP2
ELSE BP1 END BP_Low
FROM Table

除了 CASE WHEN 之外,还有其他方法可以从 2 列中获取最高/最低值吗?

最佳答案

你的第三次尝试几乎是正确的,事实上你可以在这里使用 CASE 表达式:

SELECT
CASE WHEN BP1 > BP2 THEN BP1 ELSE BP2 END AS BP_High,
CASE WHEN BP1 < BP2 THEN BP1 ELSE BP2 END AS BP_Low
FROM yourTable;

在其他数据库上,例如 MySQL、Postgres 或 SQLite,有 LEAST()GREATEST() 标量函数可用。在这些数据库上,您的查询可以简化为:

SELECT
GREATEST(BP1, BP2) AS BP_High,
LEAST(BP1, BP2) AS BP_Low
FROM yourTable;

关于sql - 从 2 列中获取最高/最低值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/75067167/

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