【问题标题】:How to select the last 3 rows but the last one如何选择最后 3 行但最后一行
【发布时间】:2015-01-23 08:09:47
【问题描述】:
SELECT doesntmatterwhat
FROM whatever
OFFSET 3 LIMIT 2

我将如何重现这一点,但不使用 LIMITOFFSET 选择最后 3 行但最后一行

【问题讨论】:

  • 那么,RDBMS 是 MySQL 吗?
  • 我应该只使用 ISO SQL,所以 RDBMS 无关紧要。但是,它是 postgresql
  • 这听起来有点像家庭作业
  • 实际上我们在课堂上遇到了一个挑战,但你很接近;)

标签: sql iso


【解决方案1】:
SELECT TOP 2 FROM (
SELECT TOP 3 doesntmatterwhat
FROM whatever
) a
ORDER BY doesntmatterwhat

不使用 TOP

SELECT n.doesntmatterwhat
FROM (SELECT n.doesntmatterwhat, row_number() OVER (ORDER BY date DESC) AS sequence
  FROM whatever n
 ) n
WHERE n.sequence>= 2 AND n.sequence<= 3;

【讨论】:

  • 也不能使用TOP。
【解决方案2】:

这就是我正在寻找的解决方案。不过感谢您的帮助。

SELECT  doesntmatterwhat
FROM    whatever
ORDER BY 1
OFFSET  3 ROWS
FETCH   FIRST 2 ROWS ONLY;

【讨论】:

  • 你确定吗?我想你需要一个order by &lt;something&gt;
  • 是的,我的错。
猜你喜欢
  • 2020-10-22
  • 2023-03-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-02-12
  • 2016-05-26
相关资源
最近更新 更多