一尘不染

获得最大值之前的值

sql

例如,给定此表的稀疏ID:

| id |
| 1 |
| 2 |
| 3 |
| 6 |
| 7 |

我可以使用以下查询从表中获取最高的“ id”:

SELECT max(id) FROM Comics

我得到:

| id |
| 7 |

我如何才能在最高“ id”之前获得“ id”(即使值不是连续的)?


阅读 157

收藏
2021-03-08

共1个答案

一尘不染

SELECT max(id) FROM Comics

是相同的

SELECT TOP 1 id FROM Comics ORDER BY ID DESC

注意:这是事务性sql语法,根据您的供应商使用rownum或limit

获得第二行,你可以做

SELECT TOP 1 ID 
FROM 
    (SELECT TOP 2 id 
     FROM Comics 
     ORDER BY ID DESC) 
ORDER BY ID ASC
2021-03-08