如何在SQL中获取一行中的最大值和最小值

119 阅读1分钟

如何在SQL中获取一行中的最大值和最小值

如何获取表列中的最高值和最低值是众所周知的,但如何获取一行中的最高值和最低值却鲜为人知。让我们看看怎么做。

要从同一行中获取最高值和最低值,我们可以分别使用GREATEST()和LEAST()函数。他们接受任意数量的参数。

这主要在非规范化表中有用:

SELECT
    GREATEST(player1_score) AS player1_best_score,
    GREATEST(player2_score) AS player2_best_score,
    GREATEST(player3_score) AS player3_best_score
    FROM game;

处理 NULL

像大多数函数一样,GREATEST()returnLOWEST()是NULL参数之一NULL。

我们可以NULL通过使用忽略值IFNULL():

SELECT
    player_id,
    GREATEST(
        IFNULL(football_score, 0),
        IFNULL(golf_score, 0)
    ) AS best_sport_score
    FROM player;