1.sql的编写
oracle数据库一mysql数据库分页的sql是不同的
SELECT * FROM (
--显示的字段
SELECT ROWNUM rn,l.physicalip, l.hostname, l.service_level, l.business, l.os_version, l.bigeyeip FROM
( select distinct t.*,b.bigeyeip from (
--查询的sql
select t.physicalip,t.hostname,t.service_level,t.business,t.os_version from TITSM_configurationitem t where t.inserttime='2018-04-28') t
left join Ip_Script_Conf i on t.physicalip=i.physicalip and i.inserttime='2018-05-04'
left join BIGEYE_CONF b on b.id=i.bigeyeid
left join Bigeye_Kscript k on k.scriptID=i.scriptID
left join CLOUDEYE_event c on c.scriptName=k.scriptName
where 1=1
) l WHERE #{page.endPos} >ROWNUM) t2 WHERE T2.rn >=#{page.startPos}
2.查询oracle的时候出现了一个比较蛋疼的问题,就是第一页显示的数据比后面显示的数据要少一条,研究过后发现,oracle的数据的第一条数据是从1开始的,不是从0开始的,
WHERE 10 >ROWNUM) t2 WHERE T2.rn >=0
显示的数据与
WHERE 10 >ROWNUM) t2 WHERE T2.rn >=1
显示的数据是一样的都是九条数据,所以在后台进行处理
将开始条数,与结束条数加1,完美解决问题
SELECT
*
FROM
(
SELECT
AUT .*, ROWNUM RN
FROM
(
SELECT
*
FROM
AA_MSOTS_BD_BM
WHERE 1=1
) AUT
WHERE
ROWNUM < 10)
WHERE
RN >=0