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;
相关推荐
枕布响丸辣20 小时前
【无标题】
数据库·oracle
Cory.眼21 小时前
MySQL语法错误与修正指南
数据库·sql·oracle
闻哥21 小时前
深入理解 MySQL InnoDB Buffer Pool 的 LRU 冷热数据机制
android·java·jvm·spring boot·mysql·adb·面试
LSL666_21 小时前
Redis值数据类型——sorted set
数据库·redis·缓存·数据类型
supericeice21 小时前
GraphRAG 和 RAG 的区别:企业知识问答什么时候该升级到 GraphRAG
数据库·知识图谱·rag·graphrag
菜菜小狗的学习笔记21 小时前
黑马程序员Redis--基础篇
数据库·redis·缓存
是桃萌萌鸭~21 小时前
Oracle参数db_unique_name详解
数据库·sql·oracle·database
Binary-Jeff21 小时前
MySQL MVCC 原理解析:Undo Log、ReadView 与版本可见性机制
java·数据库·后端·mysql·spring
bug远离Jemma21 小时前
MySql基本使用命令记录
数据库·mysql·oracle
Leon-Ning Liu21 小时前
SQL Server在ldf文件误删的情况下恢复数据库
数据库·sqlserver