怎样控制SQL SERVER返回的记录数???
比如建立一个查询,我想返回SELECT * FROM TABLE 结果集的第100到第150条记录
如果不用游标能否实现
问题点数:50、回复次数:12Top
1 楼King(傻勤)回复于 2000-03-23 21:25:00 得分 0
可以用Set RowCount n(n是整数,0的话就返回所有记录)来限定返回的记录数。也可以用Select top n 来实现(这个方法我老是失败,得请教高手了:)。Top
2 楼weyoung(有来有去)回复于 2000-03-23 21:35:00 得分 10
1、Select Top 5 From Hello 返回前五条记录
Select Top 10 PERCENT From Hello 返回10%的记录
Limiting Result Sets Using TOP and PERCENT
The TOP clause limits the number of rows returned in the result set.
TOP n [PERCENT]
n specifies how many rows are returned. If PERCENT is not specified, n is the number of rows to return. If PERCENT is specified, n is the percentage of the result set rows to return:
TOP 120 /*Return the top 120 rows of the result set. */
TOP 15 PERCENT /* Return the top 15% of the result set. */.Top
3 楼small_wolf()回复于 2000-03-24 09:39:00 得分 0
能否返回中间的结果集。比如我想返回SELECT * FROM TABLE 结果集的第100到第150条记录
Top
4 楼Tony_Yuan()回复于 2000-03-24 21:39:00 得分 10
select * from table_1 where table_1.id in (select top 150 id from table_1)
and table_1.id not in (select top 100 id from table_1)Top
5 楼How()回复于 2000-03-25 13:24:00 得分 10
假设有一员工表Employee(EmployeeID,EmployeeName,...),
要返回第10条至第20条之间的记录,可用如下语句:
select * from employee
where (EmployeeID not in ( select top 10 EmployeeID from employee))
and (EmployeeID in (select top 20 EmployeeID from employee))Top
6 楼small_wolf()回复于 2000-03-27 18:45:00 得分 0
能不能有效率更高,执行速度更快的方法了,用IN命令执行速度太慢了(记录大概有十万条)。尽管我加了ID为簇索引。Top
7 楼hardnut()回复于 2000-03-27 19:13:00 得分 0
是否可以考虑对表进行水平划分,把其中常用的20%与几乎不用的80%分别放在两个表中,
<<Microsoft sql server 6.5开发指南>>上说了这个问题,但也只是‘点到为止’
Top
8 楼zdg(曾登高)回复于 2000-03-27 19:17:00 得分 0
Select Top 语法只对Access和SQL Server 7.0才能用...
SQL Server 6.5不能使用...
为什么不用游标呢???Top
9 楼small_wolf()回复于 2000-03-28 15:29:00 得分 0
用游标就更慢了Top
10 楼tanghuan()回复于 2000-03-30 15:34:00 得分 10
如果你使用的是MSSQL,用一下方法可以
execute("create table #temptable (RowNum int identity,数据列)
insert #temptable (数据列)
select 数据列
from .....
select 数据列
from #temptable
where RowNum between fromrownum and to torownum
")Top
11 楼Axiong()回复于 2000-04-20 12:07:00 得分 10
在十多万的表中进行那样的操作,还是tanghuan的速度快些。
还可有一点优化
execute("create table #temptable (RowNum int identity,数据列)
insert #temptable (数据列)
select top torownum 数据列
from .....
select 数据列
from #temptable
where RowNum between fromrownum and to torownum
")Top
12 楼small_wolf()回复于 2000-05-19 09:52:00 得分 0
谢谢大家的讨论。Top
相关问题
- 如何控制在DataGrid控件中从第几条记录开始显示,我的数据库是SQL SERVER
- SQL SERVER中如何删除记录
- 控制MSHFlexGrid显示记录的行数的SQL语句该如何写?
- 请问用sql select查询 怎么控制返回记录的数量
- 使用SQL server,能否在指定位置插入新记录?
- 如何查询SQL Server数据库某表中没有记录?
- vb+SQL Server开发模式中填加记录的问题
- 如何更改、删除SQL SERVER 中的重复记录?
- 用jsp通过jdbc.odbc桥如何向sql server中添加记录?
- 请教 Ms SQL Server 6.5 Update 1500000条记录!!!!(详情请内进!)




