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_408717772 分钟前
golang如何实现API压测工具_golang API压测工具实现攻略
jvm·数据库·python
敲敲千反田3 分钟前
redis常见问题
数据库·redis·缓存
人道领域5 分钟前
【Redis实战篇】秒杀系统:一人一单高并发实战(synchronized锁实战与事务失效问题)
java·开发语言·数据库·redis·spring
weixin_424999367 分钟前
Redis怎样利用Lua脚本批量抓取多类型数据
jvm·数据库·python
yeyuningzi7 分钟前
如何解决海量数据库许可过期导致的无法启动问题
数据库·海量数据库
2301_817672268 分钟前
Golang怎么写TODO待办应用_Golang TODO应用教程【深入】
jvm·数据库·python
2301_817672269 分钟前
PHP源码开发用一体机合适吗_集成硬件局限性说明【操作】
jvm·数据库·python
justjinji10 分钟前
宝塔面板网站备份文件太大怎么办_调整备份压缩等级与频率
jvm·数据库·python
2301_8135995510 分钟前
如何管理多个监听器_listener.ora中非默认端口配置实战
jvm·数据库·python
qq_3422958210 分钟前
CSS如何根据父级容器宽度调整子项_利用容器查询container选择器css
jvm·数据库·python