
1、创建测试表,
create table test_order(id number , value varchar2(20));
2、插入测试数据
insert into test_order select 100+level as id, 'value_'||level from dual connect by level<=100;
commit;
3、查询表中全量数据,select t from test_order t;
4、编写sql,根据ID进行排序,查询第20条数据到30条数据;
select from (select t, row_number() over(order by id) rn from test_order t )
where rn >= 20 and rn <= 30;
用TOP PRECENT
例如:
SELECT TOP 20 PERCENT SID,SNM,SSC FROM ST ORDER BY SID
GO
从ST表按学号排列后选择前20%的学生学号,姓名,成绩。
--Mark表为提供数据的表,TB_1表为待出入数据的表
declare @count int
set @count = 1
select @count = count(course) from Mark
--创建临时表
select identity(int,1,1) as TempID,course as TempCourse into #TempTB from Mark
declare @index int
set @index = 1
declare @course nvarchar(50)
--循环把Mark表course字段的数据出入TB_1表的remark字段
while(@index<=@count)
begin
select @course = TempCourse from #TempTB where TempID = @index
update TB_1 set remark = @course where remark is null and id = (select top 1 id from TB_1 where remark is null order by id)
set @index = @index + 1
end
--删除临时表
drop table #TempTB
试一下这个吧。
SQL Server 2008 与以下版本, 可这么写:
SELECT top 10 FROM
(
select top 20 from News where news_class_id=109 order by news_id desc
) top_20
order by news_id
SQL Server 2012 可这么写:
select from News where news_class_id=109 order by news_id desc
OFFSET
10 ROWS
FETCH NEXT
10 ROWS ONLY;
用MYSQL数据库就容易了,语法格式是:
SELECT LIMIT 10,10
上面的LIMIT 10,10表示从第10条开始,取10条,这个语法支持使得MYSQL特别适合做INTERNET应用,因为INTERNET上经常有这样的需求,比如论坛帖子、邮件分页等。
我不知道ACCESS、MS SQL SERVER是否有类似功能的语法,如果没有的话,你要获取10~20就SELECT TOP 20,然后先rsmovenext10次。但是这样很不爽,万一我需要第10000~10010条,那就先跳过1万条,是否需要许多时间呢,没有MS的环境,无法测试。
补充:
你不等等高手来回答,要用我的笨办法呀,我给你的脚本修改如下:
<%
Set rs=ServerCreateObject("ADODBRecordset")
sql="select top 20 from [User]"
rsopen sql,conn,1,1
if rseof and rsbof then
responseWrite("没有企业信息!")
else
'跳过前10行
for i=1 to 10
rsmovenext
next
do while not rseof
%>
<tr>
<td><%=rs("companyname")%></td>
</tr>
<%
rsmovenext
loop
end if%>
--不知道你要求的精度是什么样的,如果只是天可以这样:
;WITH test AS
(
select TOP 20 time1 AS fOutTime from jiage ORDER BY fID
)
SELECT avg(YEAR(time1)) FROM test
以上就是关于在SQL中怎样查询一个表的第20条数据到30条数据全部的内容,包括:在SQL中怎样查询一个表的第20条数据到30条数据、sql语句 如何查找各课程前百分之20的学生的学号、SQL Server 2000查询某数据库中所有>100行记录的表的前20行等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)