假设有t1,t2两张表
我写了这么一条sql:
select(select t1.name,t2.name from t1,t2 where t1.fk_t2 = t2.id order by t2.name)where rownum <=100
查出了12条数据:
1,a
2,a
3,a
4,a
5,a
6,a
7,b
8,b
9,b
10,b
11,b
12,b
但是如果把rownum的数量改为10的话
select(select t1.name,t2.name from t1,t2 where t1.fk_t2 = t2.id order by t2.name)where rownum <=100
查出来的结果是这样的
1,a
2,a
3,a
4,a
5,a
6,a
7,b
8,b
9,b
12,b
导致的结果是我的分页页面中“12,b”这条数据在第1页和第2页都出现了一次但是“10,b”这条数据却没有出现。
当然了,我的解决方法就是多加了一个order字段“order by t2.name,t1.name” 。
但是我还是没弄明白为什么上面两条sql查出的数据顺序不一致了,应该是oracle底层的实现问题把,
不知道大家搞明白我的问题没??
我写了这么一条sql:
select(select t1.name,t2.name from t1,t2 where t1.fk_t2 = t2.id order by t2.name)where rownum <=100
查出了12条数据:
1,a
2,a
3,a
4,a
5,a
6,a
7,b
8,b
9,b
10,b
11,b
12,b
但是如果把rownum的数量改为10的话
select(select t1.name,t2.name from t1,t2 where t1.fk_t2 = t2.id order by t2.name)where rownum <=100
查出来的结果是这样的
1,a
2,a
3,a
4,a
5,a
6,a
7,b
8,b
9,b
12,b
导致的结果是我的分页页面中“12,b”这条数据在第1页和第2页都出现了一次但是“10,b”这条数据却没有出现。
当然了,我的解决方法就是多加了一个order字段“order by t2.name,t1.name” 。
但是我还是没弄明白为什么上面两条sql查出的数据顺序不一致了,应该是oracle底层的实现问题把,
不知道大家搞明白我的问题没??
解决方案 »
- 创建存储过程select赋值给游标的问题!!!!!!!!!!!!!!!!!!!!!!!!!!!
- erwin如何只修改逻辑视图的描述(Attribute)?
- 菜鸟问题,关于数据库写入
- oracle部署两个表空间,将安全/用户组和数据组区分出来
- sql server下的sql 命令如何转换成oracle 命令
- 我建的表怎么跑到sys方案里去了?
- ORACLE里写触发器的问题
- 求助;关于复制的问题!!!
- 向各位老师请教几个oracle几个小问题!!
- ORA-01652: unable to extend temp segment by 128 in tablespace TEMP
- sql查询语句的问题
- oracle 向oracle数据库插入图片出现错误
你分析一下t1,t2表里面分别是什么数据?
select(select t1.name,t2.name from t1,t2 where t1.fk_t2 = t2.id order by t2.name)where rownum <=10
回楼上:第一条sql都搜出来了,共12条
你用t1.name来order by 就可以了嘛.
select(select t1.name,t2.name from t1,t2 where t1.fk_t2 = t2.id order by t1.name)where rownum <=10