如何在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;