oracle,在第一列设置了主键select * from INSTALLEDTABLE where rownum between 1 and 3,可以搜索到1,2,3行,问题是
select * from INSTALLEDTABLE where rownum between 2 and 3,如果搜索条件不包括第一行,
将搜索不到任何结果!
select * from INSTALLEDTABLE where rownum between 2 and 3,如果搜索条件不包括第一行,
将搜索不到任何结果!
查询语句查询不到结果,理由:对于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 top 2 * from INSTALLEDTABLE where 主键
not in (select top 1 主键 from INSTALLEDTABLE)
minus
select * from INSTALLEDTABLE where rownum<=7
这样就可以选中第8行感谢arine8086(Marine);