开发者社区> 问答> 正文

PostgresQL 中有没有rownum这样的,显示结果集的序号?

PostgresQL 中有没有rownum这样的,显示结果集的序号?

展开
收起
德哥 2015-12-29 09:19:26 13038 0
1 条回答
写回答
取消 提交回答
  • 公益是一辈子的事, I am digoal, just do it. 阿里云数据库团队, 擅长PolarDB, PostgreSQL, DuckDB, ADB等, 长期致力于推动开源数据库技术、生态在中国的发展与开源产业人才培养. 曾荣获阿里巴巴麒麟布道师称号、2018届OSCAR开源尖峰人物.
    在Oracle里面rownum可以用来标示行号, 如 : 
    SQL> select rownum,table_name from dba_tables where rownum<10;
    
        ROWNUM TABLE_NAME
    ---------- ------------------------------
             1 ICOL$
             2 CON$
             3 UNDO$
             4 PROXY_ROLE_DATA$
             5 FILE$
             6 UET$
             7 IND$
             8 SEG$
             9 COL$
    
    9 rows selected.
    PostgreSQL使用窗口函数row_number()可以满足同样的需求
    postgres=# select * from (select row_number() over() as rownum,tablename from pg_tables) t where rownum<10;
     rownum |    tablename    
    --------+-----------------
          1 | pg_statistic
          2 | pg_type
          3 | pg_attribute
          4 | pg_authid
          5 | pg_proc
          6 | pg_class
          7 | pg_database
          8 | pg_user_mapping
          9 | pg_constraint
    (9 rows)
    2019-07-17 18:23:17
    赞同 1 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
PostgresChina2018_刘东明_PostgreSQL并行查询 立即下载
认识PostgreSQL中与众不同的索引 立即下载
阿里云PostgreSQL、PPAS、HDB for PG生 立即下载