开发者社区> 问答> 正文

怎样实现数据库隔行查询?(PostgreSQL)

如题。

例如查询出所有的奇数行,或者按指定的间隔行数查询

展开
收起
a123456678 2016-06-29 13:12:47 2551 0
2 条回答
写回答
取消 提交回答
  • row_number(),然后随便你选择哪行
    或者添加个新的字段serial(或者bigserial)

    2019-07-17 19:49:00
    赞同 展开评论 打赏
  • 用sequence可以勉强达到这个目的

    create temp sequence foo;
    select from (select , nextval('foo') as n from table) as t where t.n % 2 = 0;
    如果已经有自增长的字段就不需要用sequence,直接用那个字段来取模就可以了

    不过用temporay sequence的好处是必然可以保证值是连续的,而已有的自增长字段不一定可以保证连续

    另外就是如果在同一个connect session里面重复利用同一个temporay sequence来做这种计算的话,select之前最好reset sequence一下

    2019-07-17 19:49:00
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
2022 DTCC-阿里云一站式数据库上云最佳实践 立即下载
云时代的数据库技术趋势 立即下载
超大型金融机构国产数据库全面迁移成功实践 立即下载