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;
相关推荐
墨客希21 分钟前
Django 学习指南
数据库·django·sqlite
e***582322 分钟前
使用Django Rest Framework构建API
数据库·django·sqlite
s***385627 分钟前
【玩转全栈】----Django基本配置和介绍
数据库·django·sqlite
BS_Li44 分钟前
【Linux系统编程】进程控制
java·linux·数据库
多多*1 小时前
分布式中间件 消息队列Rocketmq 详解
java·开发语言·jvm·数据库·mysql·maven·java-rocketmq
z***67771 小时前
postgresql链接详解
数据库·postgresql
v***91301 小时前
MYSQL的第一次
数据库·mysql
施嘉伟1 小时前
解决 Oracle 11g Data Guard ORA-16047 的实战经验
数据库·oracle
启明真纳1 小时前
用 Logstash 把 PostgreSQL 数据实时导出到 Kafka
数据库·postgresql·kafka
百***34951 小时前
Python连接SQL SEVER数据库全流程
数据库·python·sql