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