传入当前文章的ID号,及旗标,根据旗标的不同分别显示下一篇跟上一篇的文章信息

解决方案 »

  1.   

    CREATE PROC GET_ARTICLES_SORT 

      @ID    int, 
      @FLAG  varchar(10) 

    需要传进两个值,我是在SQL中直接传值测试的如EXEC GET_ARTICLES_SORT 3 ,'N'
    3:目前文章的编号,'N'只是一个旗标而已,在之后的程序中进行处理,查询出此编号3对应的下一篇文章
    如果已经到达最后一条记录则返回的是第一条数据(文章)IF(@v_FLAG='N') 
      SET @v_CNT=(SELECT COUNT(*) FROM ARTICLES WHERE ARTICLEID>@ID) 
      IF( @v_CNT>=1 ) 
        BEGIN    
          SET @v_NEXT= (SELECT TOP 1.ArticleID FROM ARTICLES WHERE ARTICLEID>@ID) 
          SELECT A.*,S.CAPTION SortCaption FROM Articles A JOIN ArticleSort S ON A.SORTID=S.SORTID WHERE A.ArticleID=@v_NEXT 
        END 
      --如果后面沒有記錄,則返回第一行數據 
      IF(@v_CNT=0) 
        BEGIN 
          SELECT A.*,S.CAPTION SortCaption FROM Articles A JOIN ArticleSort S ON A.SORTID=S.SORTID WHERE A.ArticleID=(SELECT MIN(ArticleID) FROM ARTICLES) 
        END