ALTER PROCEDURE GetRecordForPage
(
  @StartRowIndex int,
  @MaximumRows int,
  @category int
)
AS
  with Records as(
      select id,Row_Number() over (order by id desc) as RowNumber from record
   )    
     select Records.RowNumber,record.id,record.name,record.category from Records join record where on Records.id = record.id where RowNumber between (@StartRowIndex + 1) and (@StartRowIndex + @MaximumRows + 1) order by Records.id desc RETURN以上是把所有的记录取出来的分页写法。现在我想要求把category=@category的记录取出来,应该怎么写呀?

解决方案 »

  1.   

    select Records.RowNumber,record.id,record.name,record.category from Records join record where on Records.id = record.id where Records.category=@category and RowNumber between (@StartRowIndex + 1) and (@StartRowIndex + @MaximumRows + 1) order by Records.id desc
      

  2.   

    ALTER PROCEDURE GetRecordForPage
    (
    @StartRowIndex int,
    @MaximumRows int,
    @category int
    )
    AS
      with Records as(
      select id,Row_Number() over (order by id desc) as RowNumber from record where category =@category
      )    
      select Records.RowNumber,record.id,record.name,record.category from Records join record where on Records.id = record.id where RowNumber between (@StartRowIndex + 1) and (@StartRowIndex + @MaximumRows + 1) order by Records.id desc