当前位置: 代码迷 >> Sql Server >> 在作业中,怎么让查询数据中 前三名 发送不同数值的点数?
  详细解决方案

在作业中,怎么让查询数据中 前三名 发送不同数值的点数?

热度:38   发布时间:2016-04-24 20:12:49.0
在作业中,如何让查询数据中 前三名 发送不同数值的点数???
小弟想建立个作业。要求是这样的。
每周日0:00
查询出 用户表 的 积分 列的 所有用户并已最高排名。
如:select top 3 JF from USER ORDER BY jf desc

然后让前三名发送不同的点数
如第一名发100
第二名发50
第三名发30

要怎么写呢??

------解决方案--------------------

select top 3 JF,
case row_number() over(order by getdate())
when 1 then 100
when 2 then 50
when 3 then 30
end as 点数
from [USER] ORDER BY jf desc

------解决方案--------------------

with t as
(select *,row_number() over(order by jf desc) 'rn' 
 from [USER]
)
update t 
 set t.[点数字段]=t.[点数字段]
                +case rn when 1 then 100
                         when 2 then 50
                         when 3 then 30 end
 where rn<=3
  相关解决方案