您的位置:首页 > 数据库 > Oracle

oracle:rownum 使用

2008-11-21 09:03 288 查看
rownum 是伪列,是系统加上的,不是真实存在的列,所以:
1. select * from tab_name where rownum<10 and rownum>1
查询语句查询不到结果,理由:对于rownum <10 的纪录中的第一条记录而言, rownum = 1 ,条件rownum >1 就把这条记录排除了,那么由于第一条记录被排除了那么导致第二条记录的rownum=1 ,仍然还是被排除了,直到最后一条记录都是被排除掉的;
2. select * from term where rownum<=10 and rownum>1
查询语句查询不到结果,理由同上;
3. select * from term where rownum<=10 and rownum>=1
可以查询到结果,rownum <= 10 取得的时前10条记录,都满足条件rownum >= 1,所以得到10条记录;
4. select * from term where rownum<10 and rownum>=1

可以查询到结果,rownum < 10 取得的时前9条记录,都满足条件rownum >= 1,所以得到9条记录;
而SQL SERVER中应该这样:SELECT *, ROW_NUMBER() OVER(ORDER BY SalesOrderID) AS rownum
FROM [tablename]结果如下:
rownum speaker track score
------ ---------- ---------- -----------
4 Kathy Sys 8
5 Michele Sys 8
6 Mike DB 8

或者
select IDENTITY(int, 1,1) AS ID_Num,* into #temp from 表
select * from #temp where ID_Num>10 and ID_Num<=20
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: