没有合适的资源?快使用搜索试试~ 我知道了~
PostgreSQL rownum实现方法(兼容oracle)
4 下载量 80 浏览量
2020-12-14
12:46:11
上传
评论
收藏 41KB PDF 举报
温馨提示
试读
2页
oracle中的rownum是一个虚拟列,每输出一行递增1。但是在pg中目前没有rownum虚拟列,那么如果从oracle迁移到pg该如何实现呢? 要在pg中实现rownum我们得先弄清楚oracle中的rownum有什么作用,是如何使用的。 对于rownum来说它是oracle系统顺序分配为从查询返回的行的编号,返回的第一行分配的是1,第二行是2,依此类推,这个伪字段可以用于限制查询返回的总行数。 rownum使用场景1:分页输出 oracle中分页: SQL> select * from t1 where rownum=1; ID ---------- 1
资源详情
资源评论
资源推荐
PostgreSQL rownum实现方法实现方法(兼容兼容oracle)
oracle中的rownum是一个虚拟列,每输出一行递增1。但是在pg中目前没有rownum虚拟列,那么如果从oracle迁移到pg该如
何实现呢?
要在pg中实现rownum我们得先弄清楚oracle中的rownum有什么作用,是如何使用的。
对于rownum来说它是oracle系统顺序分配为从查询返回的行的编号,返回的第一行分配的是1,第二行是2,依此类推,这个
伪字段可以用于限制查询返回的总行数。
rownum使用场景使用场景1:分页输出:分页输出
oracle中分页:
SQL> select * from t1 where rownum=1;
ID
----------
1
SQL> select * from t1 where rownum<3;
ID
----------
1
2
pg中分页:
pg自带的limit语法就可以很好的替代oracle中使用rownum分页的情况。
bill=# select * from t1 limit 1;
id | info
----+----------------------------------
1 | 4b6a755d1e1867cf1c49e841032df9ac
(1 row)
bill=# select * from t1 limit 1 offset 1;
id | info
----+----------------------------------
2 | 963ffeef5f97757767e4a9af66ea61db
(1 row)
rownum使用场景使用场景2:生成序列值:生成序列值
oracle中可以使用rownum递增的特性来生成序列值。
oracle:
SQL> ALTER TABLE t1 ADD seqno NUMBER(3);
SQL> UPDATE t1 SET seqno = ROWNUM;
pg:
pg中可以使用临时序列来为某个字段生成序列值。
bill=# create temp sequence if not exists tmp_seq;
CREATE SEQUENCE
bill=# alter sequence tmp_seq restart with 1;
ALTER SEQUENCE
bill=# alter table t1 add column col1 int;
ALTER TABLE
bill=# update t1 set col1=nextval('tmp_seq');
UPDATE 10
bill=# select * from t1;
id | info | col1
----+----------------------------------+------
1 | 4b6a755d1e1867cf1c49e841032df9ac | 1
2 | 963ffeef5f97757767e4a9af66ea61db | 2
3 | abd59f7046720b700e267e16d7f9bab3 | 3
4 | 5e1839939b64b7a50eb5471e90b9e299 | 4
5 | 24907f7103042b4e4acf7176a019e7bc | 5
6 | c7632e2705fea35ddd6b9aa5f1413947 | 6
7 | aea6eb309fd74a45650b1ed39d8b2724 | 7
8 | 2ce882fe6ccee470b4b86e7aa9196f2e | 8
9 | 5a8a05706851b9773cde048e3a362fcc | 9
10 | c27fe91e6f80feec6914d7917b489d14 | 10
(10 rows)
weixin_38576922
- 粉丝: 6
- 资源: 904
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论0