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;
相关推荐
不想看见40431 分钟前
Qt 项目中实现良好封装(模块化设计)的详细流程指南
数据库·系统架构
mygljx38 分钟前
MySQL 数据库连接池爆满问题排查与解决
android·数据库·mysql
Jeremy爱编码41 分钟前
软考数据库
数据库
Bdygsl2 小时前
MySQL(1)—— 基本概念和操作
数据库·mysql
zongzizz2 小时前
Oracle 11g 两节点rac在机房断电重启后PL/SQL和客户端连接数据库报错ORA-12541
数据库·oracle
qq_417695052 小时前
实战:用OpenCV和Python进行人脸识别
jvm·数据库·python
身如柳絮随风扬2 小时前
什么是左匹配规则?
数据库·sql·mysql
xinhuanjieyi2 小时前
ruoyimate导入sql\antflow\bpm_init_db.sql报错
android·数据库·sql
哈__2 小时前
从内核阻断 SQL 注入:金仓 KingbaseES SQL 防火墙技术解析与实践
数据库·sql
jiankeljx2 小时前
mysql之如何获知版本
数据库·mysql