|
|
最初由 biti_rainy 发布
[B]请尝试 row_number() over() 这个分析函数
关于这个函数,坛子上我也已经交代过多次了 [/B]
在当前的例子中如何使用呢?
我能想到的是如下两种情况:
select * from
(
select rowid rID, row_number() over(order by MONI_TIME) rno,MONI_TIME,MONI_TYPE,MONI_APERRCODE,MONI_CONSTANT,SubStr(MONI_USERINFO,1,50) MONI_USERINFO from cstmonilog2 where MONI_AREA = :MoniAreaNo and MONI_TYPEID = :MoniTypeID and MONI_FLAG = '1'
) T1
where T1.rNo between 900000 and 900035
select rowid rid, MONI_TIME,MONI_TYPE,MONI_APERRCODE,MONI_CONSTANT,
SubStr(MONI_USERINFO,1,50) MONI_USERINFO
from cstmonilog2
where rowid in
(
select rid from (select row_number() over(order by moni_time) rno,rowid rid
from cstmonilog2 where MONI_AREA = '9' and MONI_TYPEID = '1' and MONI_FLAG = '1'
) where rno between 900000 and 900035
但效率都很低。能否列出在当前情况下如何使用row_number() over()。 |
|