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

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

第一种方式:

select *   from (SELECT b.*, DECODE(rownum, 1, 1, 2, 2, 3, 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;

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值