postgresql 9.4引入的with ordinaly在lightdb中使用rownum替换

pg 9.4为表函数引入了自动生成行号的功能,如下:

=# SELECT * FROM generate_series(4,1,-1) WITH ORDINALITY;
 generate_series | ordinality 
-----------------+------------
               4 |          1
               3 |          2
               2 |          3
               1 |          4

但是它不能用于普通表。在lightdb中,可以使用rownum对应,同时应用于表函数和表。如下:

复制代码
zjh@postgres=# select rownum,rowid,id,v from big_table limit 10 offset 10;
 rownum | rowid  | id  |              v               
--------+--------+-----+------------------------------
     11 | (0,11) | 354 | fwisifwieisvfwismvmfeiwis354
     12 | (0,12) | 398 | fwisifwieisvfwismvmfeiwis398
     13 | (0,13) | 443 | fwisifwieisvfwismvmfeiwis443
     14 | (0,14) | 588 | fwisifwieisvfwismvmfeiwis588
     15 | (0,15) | 611 | fwisifwieisvfwismvmfeiwis611
     16 | (0,16) | 686 | fwisifwieisvfwismvmfeiwis686
     17 | (0,17) | 742 | fwisifwieisvfwismvmfeiwis742
     18 | (0,18) | 762 | fwisifwieisvfwismvmfeiwis762
     19 | (0,19) | 791 | fwisifwieisvfwismvmfeiwis791
     20 | (0,20) | 850 | fwisifwieisvfwismvmfeiwis850
(10 rows)


zjh@postgres=# SELECT rownum,x FROM generate_series(4,1,-1) x;
 rownum | x 
--------+---
      1 | 4
      2 | 3
      3 | 2
      4 | 1
(4 rows)
复制代码

具有更好的通用性。

https://paquier.xyz/postgresql-2/postgres-9-4-feature-highlight-with-ordinality/

http://www.light-pg.com/docs/lightdb/13.8-22.3/functions-srf.html

posted @   zhjh256  阅读(93)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!
历史上的今天:
2018-12-13 @Transacitonal注解不生效之spring中expose-proxy的作用与原理
2016-12-13 mysql 5.7.17发布
2016-12-13 rabbitmq connection/channel/consumer/queue的数量关系详细分析
2016-12-13 rabbitMQ publish丢包分析
点击右上角即可分享
微信分享提示