为了账号安全,请及时绑定邮箱和手机立即绑定

如何在SQL数据库表中选择第n行?

如何在SQL数据库表中选择第n行?

长风秋雁 2019-06-26 15:49:12
如何在SQL数据库表中选择第n行?我有兴趣学习一些(理想的)数据库不可知论的方法来选择n数据库表中的第四行。她还想了解如何使用以下数据库的本机功能来实现这一点:SQLServerMySQLPostgreSQLSQLite甲骨文我目前正在SQL Server 2005中执行类似的操作,但我希望看到其他人的更不可知的方法:WITH Ordered AS (SELECT ROW_NUMBER() OVER (ORDER BY OrderID) AS RowNumber, OrderID, OrderDateFROM Orders)SELECT *FROM OrderedWHERE RowNumber = 1000000上述SQL的贷项如下:Firoz Ansari的博客最新情况:看见特罗尔斯·阿文的回答关于SQL标准。特洛伊,你有什么可以引用的链接吗?
查看完整描述

3 回答

?
桃花长相依

TA贡献1860条经验 获得超8个赞

这个LIMIT / OFFSETPostgreSQL中的语法是:

SELECT
    *FROM
    mytableORDER BY
    somefield
LIMIT 1 OFFSET 20;

此示例选择第21行。OFFSET 20告诉Postgres跳过前20项记录。如果不指定ORDER BY子句,无法保证您将得到哪些记录,这很少有用。

显然,SQL标准没有提到疯狂窗口函数之外的限制问题,这就是为什么每个人实现它的方式不同的原因。


查看完整回答
反对 回复 2019-06-26
?
蓝山帝景

TA贡献1843条经验 获得超7个赞

我不确定其余的任何一个,但我知道SQLite和MySQL没有任何“默认”行排序。至少在这两种方言中,以下片段从_table抓取第15个条目,并按添加的日期/时间进行排序:

SELECT * FROM the_table ORDER BY added DESC LIMIT 1,15

(当然,您需要添加一个datetime字段,并将其设置为添加该项的日期/时间.)


查看完整回答
反对 回复 2019-06-26
  • 3 回答
  • 0 关注
  • 1841 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信