CREATE PROCEDURE  paged
(
@cur int
)
as
if '+@cur+'=1select top 2 * from shoplist order by id descelseselect top 2 * from shoplist where id  not in(select top 2*(@cur-1) id from shoplist order by id desc)
GO

解决方案 »

  1.   

    CREATE PROCEDURE  paged 

    @cur int 

    as 
    if(@cur=1)
    select top 2 * from shoplist order by id desc else select top 2 * from shoplist where id  not in(select top 2*(@cur-1) id from shoplist order by id desc) 还有,去查一下in/not in的使用,再改一下就可以
      

  2.   

    CREATE PROCEDURE  paged 

    @cur int 

    as 
    if(@cur=1)
    begin 
    select top 2 * from shoplist order by id desc 
    end
    else
    begin select top 2 * from shoplist where id  not in(select top 2*(@cur-1) id from shoplist order by id desc) 
    end
    go
      

  3.   


    --Top后面不可以直接跟变量,用动态SQLCREATE PROCEDURE  paged 

    @cur int 

    as 
      declare   @top   int   
      declare   @sql   nvarchar(4000)  
      if(@cur=1)
       begin
         set @top=2
         set @sql='select top 2 * from shoplist order by id desc '
       end
      else
       begin
        set @top=2*(@cur-1)
        set  @sql='select top 2 * from shoplist where id  not in
                                         (select top '+cast(@top   as   nvarchar(20)) +' id from shoplist order by id desc) '
       end
    exec   sp_executesql   @sql
    Go