SQL分页,拼字符串形式的储存过程,分组后排序

3.分页:

1 select * from (select ROW_NUMBER() over( order by BrandChineseName desc) num ,* from T_AutoBrand where isdeleted=0) tb where num between 3 and 4

1.分组查询

ALTER PROC [dbo].[UP_ArticleInfo_GetArticlesByGroup]
@startIndex INT,
@endIndex INT,
@typeID INT,
@ShuLiang INT,
@categoryID INT
AS 
    SELECT  *
    FROM    ( SELECT    ROW_NUMBER() OVER ( ORDER BY YEAR(PublishTime) ASC, Rank DESC, PublishTime DESC ) num ,
                        *
              FROM      ( SELECT    *
                          FROM      ( SELECT    row_number() OVER ( PARTITION BY YEAR(PublishTime) ORDER BY Rank DESC, PublishTime DESC ) rn ,YEAR(PublishTime) [year],
                                                *
                                      FROM      T_ArticleInfo
                                      WHERE     TypeID = @typeID
                                                AND CategoryID = @categoryID
                                    ) tb1
                          WHERE     rn < @ShuLiang
                        ) tb2
            ) tb3
    WHERE   num BETWEEN @startIndex AND @endIndex

2.拼写字符串:

ALTER PROC [dbo].[UP_ArticleInfo_GetArtcleByRank]
@startIndex INT,
@endIndex INT
AS 
	DECLARE @temp NVARCHAR(4000)
	SET @temp=' SELECT  *
				 FROM    ( SELECT    ROW_NUMBER() OVER ( ORDER BY ArticleID DESC ) num ,
							ei.TureName ,
							ai.*
			     FROM   dbo.T_ArticleInfo ai ,
                       
                        dbo.T_EmployeeInfo ei
                 WHERE    
                        ei.UserId = ai.OwnerID  ) tb
        WHERE   num BETWEEN '+cast(@startIndex   as   NVARCHAR(200))+ ' AND ' +cast( @endIndex   as   NVARCHAR(200)) +'  order by Rank desc , createTime asc'
	EXEC(@temp)
 
posted @ 2011-08-03 09:17  来了就看看  阅读(254)  评论(0编辑  收藏  举报