小编典典

在SQL中找到第N个最大元素

sql

想知道如何编写SQL函数以查找表中的第N个最大元素,如果没有第N个最大元素,则返回Null。

使用MySQL / MySQL工作台。

顺便说一句,我的问题与第N个最高薪水问题不同,因为我还有一个附加要求,如果第N个最大元素不存在,则返回Null。任何想法表示赞赏。

预先感谢林


阅读 136

收藏
2021-04-07

共1个答案

小编典典

您可以这样做:

SELECT t1.*
FROM (
  SELECT *
  FROM my_table
  ORDER BY value DESC
  LIMIT 1
  OFFSET N -- Set your value for N here, N being 0-based
) t1
RIGHT OUTER JOIN (
  SELECT null -- This will guarantee that you have at least one row
) t2
ON TRUE
2021-04-07