对row_number()用法的一点疑问

select m.*
  from (select t.productid,
               t.price_net,
               t.ifdirect,
               row_number() over(partition by t.pri_productid order by t.ifdirect desc) sortnum
          from product_list t
         where t.pri_productid = 316458) m
 where sortnum = 1

 

内部的sql语句出来的结果如下:

productid          price_net       ifdirect       sortnum

100275             1697.000          0                1
100274             1597.000          0                2

 

加上外层sortnum=1条件后,筛选出来的结果集都是100274那条纪录,如果100275的ifdirect=1,结果就正确

奇怪,难道是ifdirect相等引起的?望明人指点!!

 

 

你可能感兴趣的:(sql,.net)