select  row_number() over(partition packcode order by score desc),packname from T_pack;我的sql中需要按packcode 分区然后按分数score 降序排序后获取顺序号。但是如果score 是0的情况下,不参与排序,请问如何修改这个sql.我使用下面写法,没生效。select  row_number() over(partition packcode order by case when score >0 then score else null end ),packname from T_pack;

解决方案 »

  1.   

    select  row_number() over(partition packcode order by score desc),packname from T_pack WEHRE SCORE>0;不行吗
      

  2.   

    不行,因为我需要所有数据,只是score=0的不参与排序。
      

  3.   

    这些行排序列null即可。
      

  4.   

    select  row_number() over(partition packcode order by score desc),packname from T_pack WEHRE SCORE!=0
    UNION ALL
    SELECT NULL,packname from T_pack WEHRE SCORE=0
    可以吗?
      

  5.   

    partition后面不接by也可以运行么