我需要执行这个sql:
select * from
(select nt.*,
rank() over (partition by feld0 order by feld1 desc) as ranking
from (select bla from test) nt)
where ranking < 3
order by 1,2
这个sql在我的oracle数据库中工作正常,但在我有时使用的h2数据库中这不起作用,因为未定义等级和分区。
所以我需要转换这个sql,以便它可以在h2和oracle中工作。
我想用java来执行这个sql。那么是否可以将这个sql拆分成不同的sql,而不需要rank和partition呢?然后用java来处理?
If feld1
是独一无二的feld0
分区,您可以:
select *
, (
select count(*)
from YourTable yt2
where yt2.feld0 = yt1.feld0 -- Same partition
and yt2.feld1 <= yt1.feld1 -- Lower or equal rank
) as ranking
from YourTable yt1
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)