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;
相关推荐
m0_5603964715 小时前
用Python创建一个Discord聊天机器人
jvm·数据库·python
pupudawang15 小时前
Spring Boot 各种事务操作实战(自动回滚、手动回滚、部分回滚)
java·数据库·spring boot
酿情师15 小时前
2026软件系统安全赛初赛MISC--steganography
数据库·安全
m0_5698814715 小时前
使用Flask快速搭建轻量级Web应用
jvm·数据库·python
华科易迅15 小时前
Spring XML事务控制
xml·数据库·spring
天行健,君子而铎15 小时前
联动闭环、精确、动态:医疗行业数据库审计与风险监测实践方案
网络·数据库
2401_8732046515 小时前
用Pandas处理时间序列数据(Time Series)
jvm·数据库·python
2301_7765087215 小时前
定时任务专家:Python Schedule库使用指南
jvm·数据库·python
艾莉丝努力练剑15 小时前
【Linux信号】Linux进程信号(中):信号保存、信号处理(含“OS是如何运行的?”)
大数据·linux·运维·服务器·数据库·c++·mysql
2301_7638919515 小时前
使用Python控制Arduino或树莓派
jvm·数据库·python