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;
相关推荐
rylshe13144 分钟前
spark sql基本操作
sql·spark
不再幻想,脚踏实地19 分钟前
Spring Boot配置文件
java·数据库·spring boot
_extraordinary_21 分钟前
MySQL 事务(二)
android·数据库·mysql
rylshe131435 分钟前
在scala中sparkSQL连接mysql并添加新数据
开发语言·mysql·scala
fmdpenny40 分钟前
SQL中联表的运用
数据库·sql
不剪发的Tony老师1 小时前
互联网SQL面试题:用户会话时长分析
数据库·sql
睡觉z1 小时前
Shell编程之正则表达式与文本处理器
数据库·mysql·正则表达式
TDengine (老段)1 小时前
TDengine 做为 Spark 数据源
大数据·数据库·物联网·ajax·spark·时序数据库·tdengine
Dreams_l1 小时前
MySQL初阶:查询进阶
数据库·mysql
码农黛兮_461 小时前
数据库数据清洗、预处理与质量监控、 数据质量的核心概念
数据库