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