为了账号安全,请及时绑定邮箱和手机立即绑定

假设我想在informix中实现oracle的rownum方法,请问该怎么操作?

假设我想在informix中实现oracle的rownum方法,请问该怎么操作?

烙印99 2021-08-25 19:15:33
现在想在informix中实现oracle的rownum方法。例如:select rownum from test ;返回:12345
查看完整描述

2 回答

?
梵蒂冈之花

TA贡献1900条经验 获得超5个赞

可以用来进行全前N条记录,或者分页操作。Oracle SQL如下:select * from sometable where rownum <= 100; select * from sometable where rownum > 100 and rownum <= 200; SELECT * FROM ( SELECT A.*,ROWNUM AS RN FROM (SELECT * FROM sometable order by col) A WHERE ROWNUM <= 200) T WHERE T.RN > 100Informix 有更简单、高效的分页功能: select first 100 * from sometable; select skip 100 first 100 * from sometable; select skip 100 first 100 * from sometable order by col;记录编号:在ORACLE中,可以直接通过rownum 得到每条记录的一个编号,select rownum, * from sometable ; Informix中需要通过创建一个存储过程来实现类似功能。 CREATE FUNCTION rownum () returning int as rownum; define global counter int default 0; let counter = counter + 1; return counter; end function; CREATE PROCEDURE init_rownum (); define global counter int default 0; let counter = 0; end procedure; 可以按如下方式使用函数反问记录编号。

查看完整回答
反对 回复 2021-08-30
?
一只甜甜圈

TA贡献1836条经验 获得超5个赞

用序列
Use the CREATE SEQUENCE statement to create a sequence database object from
which multiple users can generate unique integers.

查看完整回答
反对 回复 2021-08-30
  • 2 回答
  • 0 关注
  • 297 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信