tableA
id    物资代码   比价表编号   日期       计划编号
1     1010101    bs101-014   2009-01-01  01
2     1010102    bs101-014   2009-01-01  02
3     1010103    bs101-014   2009-01-01  03
4     1020101    bs102-020   2009-02-01  04
5     1020102    bs102-020   2009-02-01  05
6     1030101    bs103-101   2009-03-01  06
7     1010101    bs101-015   2009-04-01  07
8     1020101    bs102-025   2009-04-01  08
......想要达到的目的:以比价表编号分组,并以日期降序排列,查询范围:物资代码like '101%' or like '102%',以N条记录为一页.要101或102开头的物资混在一起参与排序.
本人出现的问题:如果查询范围单独为like '101%'排序成功,加上or like '102%',翻到第二页时,仍然会出现第一页的记录.
我只要取"比价表编号"和"日期"两列.

解决方案 »

  1.   

    declare @pagesize int ,@pagenum int
    set @pagesize=
    set @pagenum=with cte as
    (
    select 比价表编号,日期,ROW_NUMBER(order by  比价表编号,日期 desc) as rn
    from tableA where 物资代码 like '[101,102]%'
    )select  比价表编号,日期 from cte where rn>@pagesize*(@pagenum-1)
    and rn<=@pagesize*@pagenum
      

  2.   

    贴你SQL出来,
    或者直接用2楼牛人的
      

  3.   

    搞定了,虽然LDSLOVE的办法没用上,但还是所启发,谢谢!