oracle读取评论列表,先按点赞次数取前三名,然后按创建时间倒序排序,需要分页

oracle读取评论列表,先按点赞次数取前三名,然后按创建时间倒序排序,需要分页

第一种方式:

select *

from (SELECT b.*,DECODE(rownum,1,2,3,4) rank
FROM (SELECT a.*
FROM ACT_COMMENT_INFO a
order by a.prize_num desc,ref desc) b) c

order by c.rank,c.ref desc;


第二种方式:

SELECT aa.*
FROM (

SELECT *
FROM (SELECT a.*,1 o
FROM ACT_COMMENT_INFO a
WHERE a.target_act_id = 24
ORDER BY a.prize_num DESC,ref desc)
WHERE rownum <= 3
UNION
SELECT *
FROM (SELECT b.*,2 o
FROM ACT_COMMENT_INFO b
WHERE b.target_act_id = 24
ORDER BY b.ref DESC)) aa
ORDER BY aa.o,aa.ref desc;


第二种方式可能出现重复数据。

相关文章

Java Oracle 结果集是Java语言中处理数据库查询结果的一种方...
Java AES和Oracle AES是现代加密技术中最常使用的两种AES加密...
Java是一种广泛应用的编程语言,具备可靠性、安全性、跨平台...
随着移动互联网的发展,抽奖活动成为了营销活动中不可或缺的...
Java和Oracle都是在计算机领域应用非常广泛的技术,他们经常...
Java 是一门非常流行的编程语言,它可以运行于各种操作系统上...