开发者社区> 问答> 正文

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

如题。

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

展开
收起
a123456678 2016-06-29 13:12:47 2558 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
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
云栖大会:开源 PolarDB 架构演进、关键技术与社区建设 立即下载
2023云栖大会:和客户一起玩转PolarDB新特性 立即下载
2023云栖大会:PolarDB for AI 立即下载

相关镜像