SQL 指定查询N行到N行的语句怎么写?

test表中有N行记录,有3个字段:name,sex,address.现在我想同过查询表中的,第N行到第N行的记录,比如是只想查询到第10行到第30行的纪录,怎么用sel... test表中有N行记录,有3个字段:name,sex,address.
现在我想同过查询表中的,第N行到第N行的记录,比如是只想查询到第10行到第30行的纪录,怎么用select 语言 查询出来呢?请用SQL语言,谢谢!
展开
 我来答
bluesun06
2007-06-17 · 超过11用户采纳过TA的回答
知道答主
回答量:29
采纳率:0%
帮助的人:0
展开全部
select *
from test
where rownum>=10
and rownum<=30

机子上没装oracle啊,不过好像记得这样是可以的,你试试
还有啊,你想选什么样的,最好加上order by
百度网友220833259
2007-06-19 · 超过42用户采纳过TA的回答
知道答主
回答量:250
采纳率:0%
帮助的人:0
展开全部
用分页的方法
这是我分页的存储过程
if exists(select * from sysobjects where name= 'pg_view')
drop proc pg_view
go
create proc pg_view
@pageSize int=10, --每页显示
@pageIndex int=1, --页面索引
@pageKey varchar(100), --查询字段名
@pageSort varchar(50), --排序字段名
@pageTable nvarchar(50), --表名
@pagetotal int output --总页数
as
declare @total int,@sql nvarchar(200)

set @sql=N'select @total2= count(*) from ' + @pageTable
EXEC SP_EXECUTESQL @sql, N' @total2 BIGINT OUTPUT', @total OUTPUT ----@total2 BIGINT OUTPUT 设置参数

--求总页面
if(@total<@pageSize) --总行数小于每页显示的行数则总页数等于 1
set @pagetotal=1
else
begin
if((@total%@pageSize)=0) --总行数能否被每页显示的行数整除
begin
set @pagetotal=@total/@pageSize
end
else
begin
set @pagetotal=@total/@pageSize+1
end
end

if(@pagetotal<@pageIndex) --当总页数小于查询的页数时eg:如果一共5页用户输入6页
set @pageIndex=@pagetotal

declare @exec nvarchar(1000),@pageRemove int
set @pageRemove=(@pageIndex-1)*@pageSize --查询当前页面之前的数据

set @exec=N'select top ' + convert(nvarchar(10),@pageSize) + @pageKey + N' from '+ @pageTable+N' where '+ @pageSort+
N' not in (select top '+ convert(nvarchar(10),@pageRemove)+ @pageSort +N' from '+ @pageTable+
N' order by '+ @pageSort+ N' desc) order by '+@pageSort+N' desc'
exec (@exec)
go

declare @a int
exec pg_view 21,5,'*','number','test',@a output
print @a
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式