- 爱易网页
-
Java教程
- ibatis生成的SQL语句在plsql中运行正常,排序也正常,但是ibatis自己返回的结果集却排序不正确解决方案
日期:2014-05-19 浏览次数:20787 次
ibatis生成的SQL语句在plsql中运行正常,排序也正常,但是ibatis自己返回的结果集却排序不正确
控制台打印的SQL运行信息:
{pstm-100133} Executing Statement: select t.*,org.organ_name,citizen.name,citizen.date_of_birth from ( select * from ( select row_limit.*, rownum rownum_ from ( select * from( select inorders.org_id,inorders.mpi_id,inorders.dept_admission_to,inorders.discharge_dept_name,inorders.master_doctor_name, inorders.admission_date,inorders.discharge_date,inorders.in_days,inorders.diagnosis,inorders.in_fee,inorders.ehr_id from t_log_in_orders inorders where inorders.discharge_date >= ? and inorders.discharge_date <= ? and inorders.in_fee is not null order by inorders.in_fee desc) where rownum<=? ) row_limit where rownum <= ? ) where rownum_ >= ? )t left join t_organization org on t.org_id = org.organ_code left join t_citizen_info citizen on citizen.mpi_id = t.mpi_id
{pstm-100133} Parameters: [20120101, 20120902, 10, 10, 1]
{pstm-100133} Types: [java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String]
{rset-100134} ResultSet
{rset-100134} Header: [ORG_ID, MPI_ID, DEPT_ADMISSION_TO, DISCHARGE_DEPT_NAME, MASTER_DOCTOR_NAME, ADMISSION_DATE, DISCHARGE_DATE, IN_DAYS, DIAGNOSIS, IN_FEE, EHR_ID, ROWNUM_, ORGAN_NAME, NAME, DATE_OF_BIRTH]
{rset-100134} Result: [690482894, 15681, 血液、肿瘤内科, 血液、肿瘤内科, 李丹, 20120227, 20120329, 32, 肺部感染, 106233, 24288814, 10, 第一人民医院, 曾集传, 19251214]
{rset-100134} Result: [690482894, 23083, 骨外科, 神经外科, 刘伟乐, 20120102, 20120207, 37, 肺部感染, 113280, 24225345, 8, 第一人民医院, 蔡晓青, 19840412]
{rset-100134} Result: [690482894, 27831, 急诊内科, 危重医学科, 叶自力, 20120131, 20120215, 16, 泌尿系感染, 317114.97, 24233413, 2, 第一人民医院, 刘华生, 19330220]
{rset-100134} Result: [690482894, 27831, 急诊内科, 危重医学科, 叶自力, 20120131, 20120215, 16, null, 317114.97, 24233413, 1, 第一人民医院, 刘华生, 19330220]
{rset-100134} Result: [690482894, 27209, 急诊内科, 神经外科, 余名华, 20120130, 20120214, 16, 无, 122871, 24232310, 7, 第一人民医院, 叶新健, 19760220]
{rset-100134} Result: [690482894, 29131, 肾病、风湿病科, 危重医学科, 车雁芳, 20120102, 20120217, 47, 肺部感染, 235345, 24235644, 3, 第一人民医院, 欧阳骝, 19271226]
{rset-100134} Result: [690482894, 43596, 神经外科, 神经外科, 谢乙团, 20120202, 20120310, 38, 泌尿道感染, 142203, 24261147, 5, 第一人民医院, 陈贵华, 19560816]
{rset-100134} Result: [690482894, 40882, 普外科, 普外科, 肖凌晖, 20120221, 20120306, 15, 无, 109664.6, 24256059, 9, 第一人民医院, 张月开, 19360306]
{rset-100134} Result: [690482894, 40885, 危重医学科, 综合内科, 陈海龙, 20120201, 20120306, 35, 无, 123344, 24256066, 6, 第一人民医院, 许富来, 19300106]
{rset-100134} Result: [690482894, 46436, 神经外科, 神经外科, 曾春生, 20120228, 20120314, 16, 无, 151928, 24266678, 4, 第一人民医院, 江秀琴, 19580629]
把参数替换问号组成SQL语句:
select t.*,org.organ_name,citizen.name,citizen.date_of_birth from ( select * from ( select row_limit.*, rownum rownum_ from ( select * from( select inorders.org_id,inorders.mpi_id,inorders.dept_admission_to,inorders.discharge_dept_name,inorders.master_doctor_name, inorders.admission_date,inorders.discharge_date,inorders.in_days,inorders.diagnosis,inorders.in_fee,inorders.ehr_id from t_log_in_orders inorders where inorders.discharge_date >= '20120101' and inorders.discharge_date <= '20120902' and inorders.in_fee is not null order by inorders.in_fee desc) where rownum<='10' ) row_limit where rownum <= '10' ) where rownum_ >= '1' )t left join t_organization org on t.org_id = org.organ_code left join t_citizen_info citizen on citizen.mpi_id = t.mpi_id
在plsql中查看执行结果:
690482894 27831 急诊内科 危重医学科 叶自力 20120131 20120215 16 317114.97 24233413 1 第一人民医院 刘华生 19330220
690482894 27831 急诊内科 危重医学科 叶自力 20120131 20120215 16 泌尿系感染 317114.97 24233413 2 第一人民医院 刘华生 19330220