select * from (select ROWNUM RN, A.* from (
SELECT PATIENTNAME,PATIENTNO,RESULTDATE from his5.LIS_TEST_REG
where RESULTDATE > trunc(sysdate) and PATIENTTYPE = '门诊'
and substr(STATE,4,1) = '0' and substr(STATE,3,1) = '5' and RESULTDATE is not null
and GROUPCODE = 03
and GROUPCODE = 02
and GROUPCODE = 01
GROUP BY PATIENTNAME,PATIENTNO,RESULTDATE
order by RESULTDATE desc) A) where RN <= 36 //每一类最多显示36个名字
这个呢,建议从里边开始看
SELECT PATIENTNAME,PATIENTNO,RESULTDATE from his5.LIS_TEST_REG
where RESULTDATE > trunc(sysdate) and PATIENTTYPE = '门诊'
and substr(STATE,4,1) = '0' and substr(STATE,3,1) = '5' and RESULTDATE is not null
and GROUPCODE = 03
and GROUPCODE = 02
and GROUPCODE = 01
GROUP BY PATIENTNAME,PATIENTNO,RESULTDATE
order by RESULTDATE desc
把这个结果看成一个表 A
select ROWNUM RN, A.* from A
把这个结果也看作一个表假设B(实际没有)
select * from B where RN <= 36
最后就是结果了,可以理解吗?
select * from (select ROWNUM RN, A.* from (
SELECT PATIENTNAME,PATIENTNO,RESULTDATE from his5.LIS_TEST_REG
where RESULTDATE > trunc(sysdate) and PATIENTTYPE = '门诊'
and substr(STATE,4,1) = '0' and substr(STATE,3,1) = '5' and RESULTDATE is not null
and GROUPCODE = 03
and GROUPCODE = 02
and GROUPCODE = 01
GROUP BY PATIENTNAME,PATIENTNO,RESULTDATE
order by RESULTDATE desc) A) where RN <= 36 //每一类最多显示36个名字