如表a中有一个字段:df(int)
表中有N条数据,我想得到这某条数据中的df在所在数据的排名(从大到小排,比如:一条数据中的df是5,其他数据中的都比5小,那这个数据的排名是1)

解决方案 »

  1.   

    select [排名]=row_number() over (order by getdate()),df
    from tb
    order by df desc
      

  2.   

    这还不简单?》select count(*) 
    from tb 
    where df>=5
      

  3.   

    try->
    select px from (select px=(select count(1)+1 from 表a where df>a.df),* from 表a a) t
    where df=值
      

  4.   

    select *,
    [排名]=(select count(1)+1 from tb where df>t.df) 
    from tb t
    order by [排名]
      

  5.   

    select *,(select count(*) from 表a where df>=t.df) as 排名
    from 表a t
    where id=某条
      

  6.   

    select
      px=row_number()over(order by df desc),df
    from
      tb
      

  7.   


    --考虑df有重复的情况
    select *,排名=(select count(distinct df) from 表a where df>=t.df) from 表a t
    where id=某条