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