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)