如何使用sql选择从倒数第二行开始的最后4个数据



我有一个名为posts的表,它有三列,分别是iddetailsdate,其中按升序包含以下数据:

+----+----------+-------+
| id | details  | date  |
+----+----------+-------+
|  1 | details1 | date1 |
|  2 | details2 | date2 |
|  3 | details3 | date3 |
|  4 | details4 | date4 |
+----+----------+-------+

我想按降序选择数据,但我想保留第一行的详细信息,比如我想保留第4行的id详细信息、详细信息4、日期4,但然后我想在中选择从id 3到2的数据,比如order by id desc limit 2,但保留最后的第一行

您可以使用ORDER BY DESC LIMIT 1,n 的查询

这样,n是您想要获取的行数,并且您使用LIMIT 1跳过结果的第一行,

WITH a AS (
SELECT 1 i
UNION ALL
SELECT 2 i
UNION ALL 
SELECT 3 i
UNION ALL
SELECT 4 i
)
, b as (
SELECT TOP 1 i FROM a ORDER BY i DESC
)
SELECT * 
FROM A 
EXCEPT 
SELECT * FROM B
ORDER BY i DESC

相关内容

最新更新