SQL查询分页分页(SQL语法系列)
来源:互联网 发布:淘宝 激活码 编辑:程序博客网 时间:2024/05/16 15:02
1、存储过程:
CREATE PROCEDURE [USP_Product_GetPaged] @WhereClause VARCHAR (2000), @OrderBy VARCHAR (2000), @PageIndex INT, @PageSize INTAS BEGIN DECLARE @PageLowerBound INT, @PageUpperBound INT SET @PageLowerBound = @PageSize * @PageIndex SET @PageUpperBound = @PageLowerBound + @PageSize CREATE TABLE #PageIndex ( [IndexID] INT IDENTITY (1, 1) NOT NULL, [ID] INT ) DECLARE @SQL AS NVARCHAR(4000) SET @SQL = 'INSERT INTO #PageIndex ([ID])' SET @SQL = @SQL + ' SELECT' IF @PageSize > 0 SET @SQL = @SQL + ' TOP ' + CONVERT(NVARCHAR, @PageUpperBound) SET @SQL = @SQL + ' [ID]' SET @SQL = @SQL + ' FROM [dbo].[LbtProjectInfo]' IF LEN(@WhereClause) > 0 SET @SQL = @SQL + ' WHERE ' + @WhereClause IF LEN(@OrderBy) > 0 SET @SQL = @SQL + ' ORDER BY ' + @OrderBy EXEC (@SQL) SELECT TempTable.[ID], TempTable.[ProjectName], TempTable.[ContractNumber] FROM [dbo].[LbtProjectInfo] TempTable INNER JOIN #PageIndex PageIndex ON TempTable.[ID] = PageIndex.[ID] WHERE PageIndex.IndexID > @PageLowerBound AND PageIndex.IndexID <= @PageUpperBound ORDER BY PageIndex.IndexID SET @SQL = 'SELECT COUNT(*) AS TotalRowCount' SET @SQL = @SQL + ' FROM [dbo].[LbtProjectInfo]' IF LEN(@WhereClause) > 0 SET @SQL = @SQL + ' WHERE ' + @WhereClause EXEC (@SQL) ENDGO执行存储分页:
----分页(第一页)EXECUTE dbo.USP_Product_GetPaged '', '[ID] ASC', 0, 10----分页(第二页)EXECUTE [USP_Product_GetPaged] '', '[ID] ASC', 1, 10----分页(第一页)EXECUTE [USP_Product_GetPaged] '[ID] > 600', '[ID] ASC', 0, 10----分页(第二页)EXECUTE [USP_Product_GetPaged] '[ID] > 600', '[ID] ASC', 1, 10
第二种方法(row_number() over(order by ... desc)):
SELECT TOP (10) [t].[ID] AS [ID], [t].[ProjectName] AS [ProjectName]FROM ( SELECT [ID] AS [ID], [ProjectName] AS [ProjectName], ROW_NUMBER() OVER (ORDER BY [ID] ASC) AS [row_number] FROM [dbo].[LbtProjectInfo] WHERE [ID] >= 1) AS [t]WHERE [t].[row_number] > 0ORDER BY [t].[ID] ASC
第三种(sql server2012新语法):
利用offset...fetch分页:
SELECT [ID],[ProjectName]FROM [dbo].[LbtProjectInfo]ORDER BY [ID]OFFSET 10 ROWSFETCH NEXT 10 ROWS ONLY
阅读全文
0 0
- SQL查询分页分页(SQL语法系列)
- ORACLE分页查询SQL语法
- ORACLE分页查询SQL语法
- ORACLE分页查询SQL语法
- ORACLE分页查询SQL语法
- RACLE分页查询SQL语法
- ORACLE分页查询SQL语法
- ORACLE分页查询SQL语法
- ORACLE分页查询SQL语法
- ORACLE分页查询SQL语法
- oracle分页查询sql语法-最高效的分页
- SQL分页查询优化
- 一个分页查询sql
- SQL分页数据查询
- Sql分页查询
- 分页查询SQL语句
- sql分页查询语句
- sql分页查询
- 算法学习-排序算法
- macOS系统下的文件夹加密
- Qt 学习之路 2(42):QListWidget、QTreeWidget 和 QTableWidget
- aa
- 类初始化过程详解
- SQL查询分页分页(SQL语法系列)
- 创建一个指定大小格式的文件
- NodeManager节点启动报错内存不足 NodeManager from master doesn't satisfy minimum allocations
- split,splice,slice,substr,substring使用方法总结
- uefi windows10 ubuntu双系统
- 一线架构师实践指导 电子书分享
- W/System.err(1437): android.os.NetworkOnMainThreadException
- theano.function中input和givens
- WIT事例