小弟想建立个作业。要求是这样的。
每周日0:00
查询出 用户表 的 积分 列的 所有用户并已最高排名。
如:select top 3 JF from USER ORDER BY jf desc然后让前三名发送不同的点数
如第一名发100
第二名发50
第三名发30要怎么写呢??

解决方案 »

  1.   


    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
      

  2.   


    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