RowNum
为每个查询结果的每一行返回行号
例如:
select RowNum,Sysno,OrderNUm from orders;
返回结果:

图中RowNum即为行号,这个行号并不是固定的,而是根据每次查询的结果返回的。
例如:通过添加排序条件返回的结果也是从1开始
select RowNum,Sysno,OrderNum from orders where orderType = 1;

RowNum在实际的开发中可以实现取出某一行的数据,比较常用的功能是分页的功能
例如:取出第1页的数据,每页显示5条数据;
* pageSize = 5;每页的显示行数
* pageCurrent=1;当前页
SELECT * FROM (
select RowNum rn,Sysno,OrderNum from orders ord WHERE ROWNUM<=pageCurrent*pageSize ) ordTb
WHERE ordTb.rn>(pageCurrent-1)*pageSize ;
RowID
一个使用基于64为编码的18个字符来唯一标识一条记录物理位置的一个ID,如果有两条相同的数据,RowId可以区分两条相同数据记录。面试的时候,很多面试官会提出问题:删除数据表中重复的数据,这时候可以通过RowId来实现。
select RowId ri,name from person order by name,ri;

如图,虽然name中有相同的记录,但是RowId是不同的,ROWID包含了数据号、文件号、数据位号。
其中有个规律:较先生成的数据的RowID会较小,根据这个规律,我们可以删除重复的数据
DELETE FROM person
WHERE ROWID NOT IN (SELECT MIN(ROWID) FROM person GROUP BY name) ;
select * from person;

重复的数据已经删除,所以可以利用RowID去进行去重
本文介绍了数据库查询中RowNum和RowID的概念及其应用。RowNum用于为查询结果分配行号,便于实现分页功能。RowID则是一个唯一标识记录物理位置的ID,可用于去除重复数据。
851

被折叠的 条评论
为什么被折叠?



