【oracle 分页问题】这两个查询结果竟然不一样,好神奇?
2013-11-13 16:51
477 查看
sql1:
select *
from (select t_.*, rownum as n_
from (select rid,"FId","FCreateTime",
"FStatus",
"FLeiBie",
"FName",
"FHangYe",
"FHangYe$",
"FRegionId",
"FRegionId$",
"FOfficePhone",
"FUserId",
"FUserId$",
"FDepartmentId",
"FDepartmentId$",
"FSumdingdane",
"FChanPingXian",
"FBaoBeiStatus",
"FYinruStatus",
"Fxiumian",
"Fkfry",
"Fkfry$",
"Fkhbm",
"Fkhbm$",
"Fshiti",
"Fshiti1",
"Fshiti2",
"Fshiti3"
from (select "TcCustomer".rowId as rid,"TcCustomer"."FRegionId",
"TcCustomer"."FLeiBie",
"TcCustomer"."Fshiti",
"TcCustomer"."FOfficePhone",
"TcCustomer"."FHangYe",
"TcCustomer"."Fkhbm",
"TcCustomer"."Fxiumian",
"TcCustomer"."FChanPingXian",
"TcCustomer"."FBaoBeiStatus",
"TcCustomer"."FYinruStatus",
"TcCustomer"."FDepartmentId",
"TcCustomer"."FSumdingdane",
"TcCustomer"."Fshiti3",
"TcCustomer"."FUserId",
"TcCustomer"."FCreateTime",
"TcCustomer"."FStatus",
"TcCustomer"."FName",
"TcCustomer"."FId",
"TcCustomer"."Fkfry",
"TcCustomer"."Fshiti1",
"TcCustomer"."Fshiti2",
"TsUser_1"."FName" as "FUserId$",
"TsDepartment_1"."FName" as "Fkhbm$",
"Tuindustry_1"."FName" as "FHangYe$",
"TsDepartment_2"."FName" as "FDepartmentId$",
"TsUser_2"."FName" as "Fkfry$",
"Tuarea_1"."FName" as "FRegionId$"
from "TcCustomer"
left join "TsUser" "TsUser_1"
on "TsUser_1"."FId" = "TcCustomer"."FUserId"
left join "TsDepartment" "TsDepartment_1"
on "TsDepartment_1"."FId" = "TcCustomer"."Fkhbm"
left join "Tuindustry" "Tuindustry_1"
on "Tuindustry_1"."FId" = "TcCustomer"."FHangYe"
left join "TsDepartment" "TsDepartment_2"
on "TsDepartment_2"."FId" =
"TcCustomer"."FDepartmentId"
left join "TsUser" "TsUser_2"
on "TsUser_2"."FId" = "TcCustomer"."Fkfry"
left join "Tuarea" "Tuarea_1"
on "Tuarea_1"."FId" = "TcCustomer"."FRegionId") "TcCustomer"
where "FLeiBie" = 'qudao'
order by "FCreateTime" asc) t_
where rownum <= 1000)
where n_<=375 and n_ > 350;
sql2:
select *
from (select t_.*, rownum as n_
from (select rid,"FId","FCreateTime",
"FStatus",
"FLeiBie",
"FName",
"FHangYe",
"FHangYe$",
"FRegionId",
"FRegionId$",
"FOfficePhone",
"FUserId",
"FUserId$",
"FDepartmentId",
"FDepartmentId$",
"FSumdingdane",
"FChanPingXian",
"FBaoBeiStatus",
"FYinruStatus",
"Fxiumian",
"Fkfry",
"Fkfry$",
"Fkhbm",
"Fkhbm$",
"Fshiti",
"Fshiti1",
"Fshiti2",
"Fshiti3"
from (select "TcCustomer".rowId as rid,"TcCustomer"."FRegionId",
"TcCustomer"."FLeiBie",
"TcCustomer"."Fshiti",
"TcCustomer"."FOfficePhone",
"TcCustomer"."FHangYe",
"TcCustomer"."Fkhbm",
"TcCustomer"."Fxiumian",
"TcCustomer"."FChanPingXian",
"TcCustomer"."FBaoBeiStatus",
"TcCustomer"."FYinruStatus",
"TcCustomer"."FDepartmentId",
"TcCustomer"."FSumdingdane",
"TcCustomer"."Fshiti3",
"TcCustomer"."FUserId",
"TcCustomer"."FCreateTime",
"TcCustomer"."FStatus",
"TcCustomer"."FName",
"TcCustomer"."FId",
"TcCustomer"."Fkfry",
"TcCustomer"."Fshiti1",
"TcCustomer"."Fshiti2",
"TsUser_1"."FName" as "FUserId$",
"TsDepartment_1"."FName" as "Fkhbm$",
"Tuindustry_1"."FName" as "FHangYe$",
"TsDepartment_2"."FName" as "FDepartmentId$",
"TsUser_2"."FName" as "Fkfry$",
"Tuarea_1"."FName" as "FRegionId$"
from "TcCustomer"
left join "TsUser" "TsUser_1"
on "TsUser_1"."FId" = "TcCustomer"."FUserId"
left join "TsDepartment" "TsDepartment_1"
on "TsDepartment_1"."FId" = "TcCustomer"."Fkhbm"
left join "Tuindustry" "Tuindustry_1"
on "Tuindustry_1"."FId" = "TcCustomer"."FHangYe"
left join "TsDepartment" "TsDepartment_2"
on "TsDepartment_2"."FId" =
"TcCustomer"."FDepartmentId"
left join "TsUser" "TsUser_2"
on "TsUser_2"."FId" = "TcCustomer"."Fkfry"
left join "Tuarea" "Tuarea_1"
on "Tuarea_1"."FId" = "TcCustomer"."FRegionId") "TcCustomer"
where "FLeiBie" = 'qudao'
order by "FCreateTime" asc) t_
where rownum <= 375)
where n_<=375 and n_ > 350;
两个sql的差别就是减少了中间结果集,rownum<=1000,rownum<=375的区别,结果整个处理的数据就不一样了,我把两种的全部导出来,发现到300多条就不一致了,真的很神奇;
解决办法:增大第二个sql的结果集 rownum <= 375+25
select *
from (select t_.*, rownum as n_
from (select rid,"FId","FCreateTime",
"FStatus",
"FLeiBie",
"FName",
"FHangYe",
"FHangYe$",
"FRegionId",
"FRegionId$",
"FOfficePhone",
"FUserId",
"FUserId$",
"FDepartmentId",
"FDepartmentId$",
"FSumdingdane",
"FChanPingXian",
"FBaoBeiStatus",
"FYinruStatus",
"Fxiumian",
"Fkfry",
"Fkfry$",
"Fkhbm",
"Fkhbm$",
"Fshiti",
"Fshiti1",
"Fshiti2",
"Fshiti3"
from (select "TcCustomer".rowId as rid,"TcCustomer"."FRegionId",
"TcCustomer"."FLeiBie",
"TcCustomer"."Fshiti",
"TcCustomer"."FOfficePhone",
"TcCustomer"."FHangYe",
"TcCustomer"."Fkhbm",
"TcCustomer"."Fxiumian",
"TcCustomer"."FChanPingXian",
"TcCustomer"."FBaoBeiStatus",
"TcCustomer"."FYinruStatus",
"TcCustomer"."FDepartmentId",
"TcCustomer"."FSumdingdane",
"TcCustomer"."Fshiti3",
"TcCustomer"."FUserId",
"TcCustomer"."FCreateTime",
"TcCustomer"."FStatus",
"TcCustomer"."FName",
"TcCustomer"."FId",
"TcCustomer"."Fkfry",
"TcCustomer"."Fshiti1",
"TcCustomer"."Fshiti2",
"TsUser_1"."FName" as "FUserId$",
"TsDepartment_1"."FName" as "Fkhbm$",
"Tuindustry_1"."FName" as "FHangYe$",
"TsDepartment_2"."FName" as "FDepartmentId$",
"TsUser_2"."FName" as "Fkfry$",
"Tuarea_1"."FName" as "FRegionId$"
from "TcCustomer"
left join "TsUser" "TsUser_1"
on "TsUser_1"."FId" = "TcCustomer"."FUserId"
left join "TsDepartment" "TsDepartment_1"
on "TsDepartment_1"."FId" = "TcCustomer"."Fkhbm"
left join "Tuindustry" "Tuindustry_1"
on "Tuindustry_1"."FId" = "TcCustomer"."FHangYe"
left join "TsDepartment" "TsDepartment_2"
on "TsDepartment_2"."FId" =
"TcCustomer"."FDepartmentId"
left join "TsUser" "TsUser_2"
on "TsUser_2"."FId" = "TcCustomer"."Fkfry"
left join "Tuarea" "Tuarea_1"
on "Tuarea_1"."FId" = "TcCustomer"."FRegionId") "TcCustomer"
where "FLeiBie" = 'qudao'
order by "FCreateTime" asc) t_
where rownum <= 1000)
where n_<=375 and n_ > 350;
sql2:
select *
from (select t_.*, rownum as n_
from (select rid,"FId","FCreateTime",
"FStatus",
"FLeiBie",
"FName",
"FHangYe",
"FHangYe$",
"FRegionId",
"FRegionId$",
"FOfficePhone",
"FUserId",
"FUserId$",
"FDepartmentId",
"FDepartmentId$",
"FSumdingdane",
"FChanPingXian",
"FBaoBeiStatus",
"FYinruStatus",
"Fxiumian",
"Fkfry",
"Fkfry$",
"Fkhbm",
"Fkhbm$",
"Fshiti",
"Fshiti1",
"Fshiti2",
"Fshiti3"
from (select "TcCustomer".rowId as rid,"TcCustomer"."FRegionId",
"TcCustomer"."FLeiBie",
"TcCustomer"."Fshiti",
"TcCustomer"."FOfficePhone",
"TcCustomer"."FHangYe",
"TcCustomer"."Fkhbm",
"TcCustomer"."Fxiumian",
"TcCustomer"."FChanPingXian",
"TcCustomer"."FBaoBeiStatus",
"TcCustomer"."FYinruStatus",
"TcCustomer"."FDepartmentId",
"TcCustomer"."FSumdingdane",
"TcCustomer"."Fshiti3",
"TcCustomer"."FUserId",
"TcCustomer"."FCreateTime",
"TcCustomer"."FStatus",
"TcCustomer"."FName",
"TcCustomer"."FId",
"TcCustomer"."Fkfry",
"TcCustomer"."Fshiti1",
"TcCustomer"."Fshiti2",
"TsUser_1"."FName" as "FUserId$",
"TsDepartment_1"."FName" as "Fkhbm$",
"Tuindustry_1"."FName" as "FHangYe$",
"TsDepartment_2"."FName" as "FDepartmentId$",
"TsUser_2"."FName" as "Fkfry$",
"Tuarea_1"."FName" as "FRegionId$"
from "TcCustomer"
left join "TsUser" "TsUser_1"
on "TsUser_1"."FId" = "TcCustomer"."FUserId"
left join "TsDepartment" "TsDepartment_1"
on "TsDepartment_1"."FId" = "TcCustomer"."Fkhbm"
left join "Tuindustry" "Tuindustry_1"
on "Tuindustry_1"."FId" = "TcCustomer"."FHangYe"
left join "TsDepartment" "TsDepartment_2"
on "TsDepartment_2"."FId" =
"TcCustomer"."FDepartmentId"
left join "TsUser" "TsUser_2"
on "TsUser_2"."FId" = "TcCustomer"."Fkfry"
left join "Tuarea" "Tuarea_1"
on "Tuarea_1"."FId" = "TcCustomer"."FRegionId") "TcCustomer"
where "FLeiBie" = 'qudao'
order by "FCreateTime" asc) t_
where rownum <= 375)
where n_<=375 and n_ > 350;
两个sql的差别就是减少了中间结果集,rownum<=1000,rownum<=375的区别,结果整个处理的数据就不一样了,我把两种的全部导出来,发现到300多条就不一致了,真的很神奇;
解决办法:增大第二个sql的结果集 rownum <= 375+25
相关文章推荐
- oracle分页查询结果集重复问题&解决方法
- 问题:oracle 两个表之间的修改;结果:ORACLE 两个表之间更新的实现
- SQL SERVER2005 使用<>与!= 查询结果不一样的问题
- oracle分页查询数据重复问题
- 折腾Oracle问题小菜记[分页存储过程/查询所有表、视图、存储过程/查询表、视图、存储过程字段结构与参数](三)
- oracle分页查询数据重复问题的解决
- 折腾Oracle问题小菜记[分页存储过程/查询所有表、视图、存储过程/查询表、视图、存储过程字段结构与参数](三)
- oracle中,为什么同样是对汉字进行排序,两个库的排序结果不一样?
- oracle分页查询数据重复问题
- 如何解决oracle分页查询数据重复问题
- 关于Oracle分页查询的问题总结
- Oracle分页查询中排序与效率问题
- 教您如何解决oracle分页查询数据重复问题
- Oracle问题小记五:服务启动-索引-子查询-分页存储过程
- oracle合并两个不一样的结果集
- 关于用delphi查询oracle与mysql数据库的分页显示问题
- ORACLE之储存过程实现查询结果分页显示
- 折腾Oracle问题小菜记[分页存储过程/查询所有表、视图、存储过程/查询表、视图、存储过程字段结构与参数](三)
- Oracle问题小记五:服务启动-索引-子查询-分页存储过程
- Oracle EBS R12 - 查询同一个表在不同用户下的同义词(XLA_TRANSACTION_ENTITIES)时返回的结果不一样