日期:2014-05-17  浏览次数:20433 次

在作业中,如何让查询数据中 前三名 发送不同数值的点数???
小弟想建立个作业。要求是这样的。
每周日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