--创建测试表
CREATE TABLE [t_test]
(
[tid] INT IDENTITY(1,1) PRIMARY KEY,
[varcharValue] VARCHAR(50),
[floatValue] FLOAT
)
--向表中插入10000条数据
declare @counter int
set @counter=1
while @counter<10000
begin
insert into [t_test] values(Convert(varchar(50),Rand()),Rand())
set @counter=@counter+1
end
go
--查询表中数据
select * from [t_test]
--显示执行时间
set statistics time on
--分页1:差集思想--没有在前20条中的前10条
select top 10 * from [t_test] where [tid] not in(select top 20 [tid] from [t_test] order by [tid]) order by [tid]
--分页2:求前30条与前20条的差集
select top 10 * from [t_test] t1
where not exists
(
select * from (select top 20 * from [t_test] order by [tid]) t2
where t2.tid=t1.tid
)
order by tid
--分页3:取前10条从(id>前20条最大的id)
select top 10 * from [t_test] where
(
tid>(select max(tid) from (select top 20 tid from [t_test] order by tid))
)
order by tid
SELECT TOP 10 *
FROM [t_test]
WHERE ([tid] >
(SELECT MAX([tid])
FROM (SELECT TOP 20 [tid]
FROM [t_test]
ORDER BY [tid]) AS [t1]))
ORDER BY [tid]
--分页4:使用分析函数ROW_NUMBER()实现(只适用于2005及以上版本)
SELECT * FROM
(
SELECT ROW_NUMBER() OVER (ORDER BY [tid]) [num],*
FROM [t_test]
) [t1]
WHERE num>20 AND num<=30
--分页5:创建临时表:这种方案的执行效率最差,但通用性最强
CREATE TABLE [#temp1]
(
[tempId] INT IDENTITY(1,1),
[tid] INT,
[varcharValue] VARCHAR(50),
[floatValue] FLOAT
)
INSERT INTO [#temp1] SELECT * FROM [t_test] ORDER BY [tid]
SELECT * FROM [#temp1]
WHERE [tempId]>20 AND [tempId]<=30
--分页6:使用表变量
DECLARE @tt TABLE ([tempId] INT IDENTITY(1,1), [tid] INT)
INSERT INTO @tt([tid])
select [tid] from [t_test] order by [tid]
SELECT [t1].[tid],[varcharValue],[floatValue] FROM [t_test] [t1],@tt [t2]
WHERE [tempId]>20 AND [tempId]<=30
AND [t1].[tid]=[t2].[tid]
分享到:
相关推荐
### SQL Server 数据库分页查询方法详解 #### 一、背景与问题定义 在实际的数据库操作中,分页查询是非常常见的需求之一。对于大型数据集来说,一次加载所有数据到前端显示是不现实的,这不仅会增加服务器负担,还...
在Java编程中,连接SQL Server数据库并执行查询是常见的任务,尤其当涉及到大量数据时,分页显示就显得尤为重要。本篇文章将详细讲解如何使用Java连接SQL Server数据库,执行查询语句以及实现分页显示。 首先,我们...
几条常见的数据库分页SQL 语句,针对oracle,sqlserver,mysql三种常见数据库的分页显示。
数据库分页是老生常谈的问题了。如果使用ORM框架,再使用LINQ的话,一个Skip和Take就可以搞定。但是有时由于限制,需要使用存储过程来实数据库分页是老生常谈的问题了。如果使用ORM框架,再使用LINQ的话,一个Skip和...
SQL server2008中通用分页存储过程,表名,每页长度,页码都是动态赋值。
接下来,让我们详细探讨如何使用C/C++通过ODBC操作SQL Server数据库: 1. **安装ODBC驱动**:首先,确保已经安装了适用于SQL Server的ODBC驱动程序,例如Microsoft SQL Server Native Client或ODBC Driver 17 for ...
### 最简单的SQL Server数据库存储过程分页 #### 知识点概述 在处理大量数据时,分页查询是一项常见的需求。传统的T-SQL分页方法可能会导致性能问题,尤其是在面对百万级别的数据集时。本文介绍一种简单且高效的...
在SQL Server数据库中,分页查询是一个非常重要的功能,它允许我们从大量数据中只获取一部分,例如,每次只返回一页的数据,以提高查询效率和用户体验。本篇将深入探讨SQL Server实现分页查询的语句及其工作原理。 ...
数据库分页是老生常谈的问题了。如果使用ORM框架,再使用LINQ的话,一个Skip和Take可以搞定。但是有时由于限制,需要使用存储过程来实现。在SQLServer中使用存储过程实现分页的已经有很多方法了。之前在面试中遇到过...
【SQL Server数据库服务器内存优化】 在SQL Server数据库服务器的运行中,内存配置是至关重要的,因为它直接影响着系统性能和响应速度。本文主要探讨了如何针对Windows NT 4.0平台上的SQL Server数据库服务器进行...
在本教程中,我们将聚焦于如何使用C#模拟SQL Server数据库,并结合DataGridView控件来展示数据。首先,我们需要理解几个核心概念: 1. **C#**:这是一种面向对象的编程语言,由微软公司开发,广泛应用于Windows应用...
#### SQL Server 数据库分页 SQL Server 提供了多种分页方式,包括使用 ROW_NUMBER() 函数和 TOP 关键字结合的方式。 1. **ROW_NUMBER() 函数分页**: ```sql SELECT * FROM ( SELECT sid, ROW_NUMBER() OVER ...
│ 01-SQLSERVER数据库基础.mp4 │ 02_01-创建数据库.mp4 │ 02_02-创建数据表.mp4 │ 02_03-表结构和约束的维护.mp4 │ 03-插入数据.mp4 │ 04-数据的修改和删除.mp4 │ 05-基本查询.mp4 │ 06_01-条件查询一.mp4 ...
一个基于Hibernate 和 SQLServer 数据库的分页示例,所有文件和数据库备份都在,只是速度不怎么快,如果加上自动生成下拉框,速度就更慢了,单表、10008条测试数据,如果哪位大侠改进了查询速度望告之:vni2007@163....
本篇将详细探讨如何使用C#连接和操作SQL Server数据库,以`SqlServerHelp`类为例,阐述其中的关键知识点。 首先,`SqlServerHelp`类是为简化与SQL Server数据库的交互而设计的。在C#中,我们通常使用ADO.NET库,它...
在SQL Server中,分页技术是一项关键功能,尤其在处理大量数据时,它能有效地提高查询性能并优化用户体验。在Web应用中,分页通常用于显示数据库中的数据列表,避免一次性加载所有数据导致的性能问题。以下是几种...
综上所述,`Hibernate+sqlserver2000分页`是一个结合了ORM框架和数据库分页策略的技术主题。在实际应用中,开发者需要根据业务需求选择合适的分页方法,并注意性能优化,如避免全表扫描,使用索引来加速查询等。理解...
在ASP.NET中,通常使用ADO.NET或者Entity Framework来连接和操作SQL Server数据库。对于分页,需要在查询时动态设置分页参数,并将结果绑定到分页控件。 5. **分页性能优化** - 使用索引:确保用于排序的字段有...