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;
相关推荐
YL200404262 小时前
MySQL-进阶篇-视图/存储过程/触发器
数据库·mysql
qq_401700412 小时前
Qt 中使用 SQLite 数据库以及数据库连接池的设计与实现
数据库·qt·sqlite
arronKler2 小时前
数据库性能优化三:程序操作优化
数据库·oracle
墨着染霜华2 小时前
MySQL字符串数字筛选与转换 + Java Integer/Long数值长度避坑指南
java·数据库·mysql
2401_850491652 小时前
Bootstrap和OpenLayers结合开发的示例
jvm·数据库·python
Royzst2 小时前
集合进阶(Map集合)
java·前端·数据库
Java识堂2 小时前
MongoDB架构详解
数据库·mongodb·架构
jran-3 小时前
Redis NoSQL&Redis架构&数据结构
数据库·redis·缓存
文青小兵3 小时前
云计算Linux——数据库MySQL主从复制和读写分离(十七)
linux·运维·服务器·数据库·mysql·云计算
码上有光3 小时前
MySQL基础操作——约束(下)——期末快速复习
数据库·sql·mysql·期末快速复习