MySQL用SQL取三列中最大的数据值

1、有如下数据:

A B C
0 0 0
0 97.06 0
0 330.72 330.72
0 0 6
9.65 0 0
27.88 27.85 0
86.92 0 86.92
219.42 219.4 219.41

需要展示为如下形式:

A B C 结果列
0 0 0 0
0 97.06 0 97.06
0 330.72 330.72 330.72
0 0 6 6
9.65 0 0 9.65
27.88 27.85 0 27.88
86.92 0 86.92 86.92
219.42 219.4 219.41 219.42

解决办法:

sql 复制代码
一、创建表
CREATE TABLE t1 (
    A DECIMAL(10, 2),
    B DECIMAL(10, 2),
    C DECIMAL(10, 2)
);

二、插入数据
INSERT INTO t1 (A, B, C) VALUES
(0, 0, 0),
(0, 97.06, 0),
(0, 330.72, 330.72),
(0, 0, 6),
(9.65, 0, 0),
(27.88, 27.85, 0),
(86.92, 0, 86.92),
(219.42, 219.4, 219.41);

最终结果:

sql 复制代码
第一种解决办法:
SELECT
    A,
    B,
    C,
    GREATEST(A, B, C) AS 结果列
FROM
    t1;

第二种解决办法:
		
		SELECT
    A,
    B,
    C,
    CASE
        WHEN A >= B AND A >= C THEN A
        WHEN B >= A AND B >= C THEN B
        ELSE C
    END AS 结果列
FROM
    t1;
相关推荐
weixin_4087177714 小时前
golang如何实现API压测工具_golang API压测工具实现攻略
jvm·数据库·python
敲敲千反田14 小时前
redis常见问题
数据库·redis·缓存
人道领域14 小时前
【Redis实战篇】秒杀系统:一人一单高并发实战(synchronized锁实战与事务失效问题)
java·开发语言·数据库·redis·spring
weixin_4249993614 小时前
Redis怎样利用Lua脚本批量抓取多类型数据
jvm·数据库·python
yeyuningzi14 小时前
如何解决海量数据库许可过期导致的无法启动问题
数据库·海量数据库
2301_8176722614 小时前
Golang怎么写TODO待办应用_Golang TODO应用教程【深入】
jvm·数据库·python
2301_8176722614 小时前
PHP源码开发用一体机合适吗_集成硬件局限性说明【操作】
jvm·数据库·python
justjinji14 小时前
宝塔面板网站备份文件太大怎么办_调整备份压缩等级与频率
jvm·数据库·python
2301_8135995514 小时前
如何管理多个监听器_listener.ora中非默认端口配置实战
jvm·数据库·python
qq_3422958214 小时前
CSS如何根据父级容器宽度调整子项_利用容器查询container选择器css
jvm·数据库·python