怎样实现数据库隔行查询?(PostgreSQL)-问答-阿里云开发者社区-阿里云

开发者社区> 问答> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

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

如题。

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

展开
收起
a123456678 2016-06-29 13:12:47 2210 0
2 条回答
写回答
取消 提交回答
  • alitrack

    row_number(),然后随便你选择哪行
    或者添加个新的字段serial(或者bigserial)

    2019-07-17 19:49:00
    赞同 展开评论 打赏
  • a123456678

    用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
    赞同 展开评论 打赏
问答排行榜
最热
最新
相关电子书
更多
PostgresChina2018_刘东明_PostgreSQL并行查询
立即下载
PolarDB for PostgreSQL 源码与应用实战
立即下载
PolarDB for PostgreSQL 开源必读手册
立即下载