如题。
不用动态SQL
存储过程传说排序字段和排序方向
Row_Number只能排正序,不能倒序。

解决方案 »

  1.   

    如果是传参数,好象只能使用动态SQL.
      

  2.   

    把排序字段列表及其顺序作为入参,动态SQL搞。其他方法没听说,等待学习……
      

  3.   

    Row_Number只能排正序,不能倒序。
    --------------
    谁说的?if object_id('tempdb.dbo.#') is not null drop table #
    create table # (data int)
    insert # select 1
    insert # select 2-->倒序
    select row_number()over(order by data desc)row_number,* from #
    /*
    row_number           data
    -------------------- -----------
    1                    2
    2                    1
    */-->正序
    select row_number()over(order by data asc)row_number,* from #
    /*
    row_number           data
    -------------------- -----------
    1                    1
    2                    2
    */
      

  4.   

    不用动态SQL,那就IF判断,把所有可能的语句组合一个个写出来,如果你不怕麻烦的话
      

  5.   

    select *,id=RANK() over (PARTITION BY moneya order by pkid desc) from a