会员ID      信息      日期
A           1         21
A           1         21
A           1         21
A           1         21
A           1         21
B           2         20
B           2         20
B           2         20
B           2         20
C           3         19
C           3         19
C           3         19
C           3         18
D           4         18
D           4         17
D           4         17现象:如果我一页分4条显示,按照日期的倒序,那么一页全部显示的都是A会员的信息要求实现:
A,B,C,D会员在每个分页里面平均信息,也就是第一页,第二页...,要有A,B,C,D  4家会员的信息,再按日期
简单说,就是不让一家会员全部显示在上面请高手指教,我现在用的是
Order By Rnd(),日期 desc
但是还是无法满足我 会员都能显示

解决方案 »

  1.   

    使用ROW_NUMBER()OVER(partition by 会员ID Order By Rnd(),日期 desc)
      

  2.   

    报错 :'Rnd' 不是可以识别的 内置函数名称。 然后调整为 :
     where s.ActO_IsLock=1 and s.ActO_IsDel=0 and (s.acto_infornum>0) and s.ActO_IsCase=0 and s.ActO_ID not in (0) Row_NUMBER() OVER (partition by s.Users_ID order by Case off_city When '杭州' Then 0 Else 1 End, Rnd(),s.ActO_Publish desc) 又报错:'Row_NUMBER' 附近有语法错误
      

  3.   

    你先看看row_number用法
      

  4.   


    看了下语法,现在是显示正常了,但是效果没有实现,排序还是一家会员全部排在了一起,
    请帮我看看select s.acto_id,s.ohtml_name,s.acto_infornum,s.acto_area1 as area1,s.acto_area2 as area2,s.acto_type,o.*,u.users_comname,u.users_comshortname,sw.color sw_color,sw.ClassName as sw_classname,'㎡' as AreaUnits,Row_NUMBER() OVER (partition by s.Users_ID Order By s.ActO_Publish desc) as rank from [FC_Act_SellHouse] s inner join [FC_Office] o on o.id = s.office_id inner join [FC_Users] u on s.users_id = u.users_id and u.users_isdel=0 inner join [FC_DomainConfig] d on d.sub_city = o.Off_city left join [FC_Class] sw on s.ActO_Type=sw.C_ID where s.ActO_IsLock=1 and s.ActO_IsDel=0 and (s.acto_infornum>0) and s.ActO_IsCase=0 and s.ActO_ID not in (0) order by Case off_city When '杭州' Then 0 Else 1 End, u.users_isuser desc,s.ActO_Publish desc 
      

  5.   


    非常谢谢,好像已经解决了,最后
    少了个  order by rank