首页 > 代码库 > “取出数据表中第10条到第20条记录”的sql语句+select top 用法
“取出数据表中第10条到第20条记录”的sql语句+select top 用法
1.首先,select top用法:
参考问题 select top n * from和select * from的区别
select * from table-- 取所有数据,返回无序集合
select top n * from table -- 根据表内数据存储顺序取前n条,返回无序集合
select * from table order by id desc -- 取所有数据,按id逆序返回有序列表
select top n * from table order by id desc-- 先按id逆序,再取前n条,返回按id排序的有序集合【注意,按某个属性排序,该排序属性的数据列值最好是不重复的,如果有重复的,那排序属性值相等的这些行在结果集中的顺序事先是不能确定的】
栗子如下~
我们以pid作为排序属性值,第16行,第19行和第20行的pid值相等。现在取以pid排序的倒数5条记录:
<span style="font-size:18px;">Connection con=new SQLConnection().getConnection(); String sql="select top 5 * from test order by pid desc"; System.out.println("select begins..."); Statement statement=con.createStatement(); ResultSet result = statement.executeQuery(sql); while (result.next()) { </span>
<span style="font-size:18px;"> System.out.println(result.getInt(1)+","+result.getString(2)+","+result.getString(3)); } System.out.println("select ends..."); con.close(); statement.close(); result.close(); con=null; statement=null; result=null;</span>
结果:
select begins...
3,as,9
16,tt,8 【三者顺序事先不能确定】
19,gh,8
20,jk,8
6,bb,7
select ends...
2.类似于“查询第10条到第20条记录”的sql语句写法===常应用于分页显示上
1) String sql="select top 10 * from (select * from test where id<21) m order by m.id desc"; //注意id为主键,子查询取出前20条记录,主查询先降序再取前10条,但结果是降序的,所以后续处理时要注意
2)查询第m条到第n条记录:
String sql="select top n-m+1 * from test where (id not in(select top m-1 id from test))"; //可以是正常顺序的第m条到第n条记录写法,很推荐哦~
String sql="select top n-m+1 * from test where (id not in(select top m-1 id from test))"; //可以是正常顺序的第m条到第n条记录写法,很推荐哦~
3) 【有些小毛病,我自己也不知道错在哪了,写出来,若有某位看客知道烦请留言一下哦】
String sql = "select top 10 * from (select top 20 * from test) a order by a.id desc";
以上述表中数据试了一下,结果是:【为什么是从第12条到第21条嘞?想不明白】
21,kl,100
20,jk,8
19,gh,8
18,aas,18
17,qw,19
16,tt,8
15,ww,15
14,hh,13
13,gg,16
12,ui,11
20,jk,8
19,gh,8
18,aas,18
17,qw,19
16,tt,8
15,ww,15
14,hh,13
13,gg,16
12,ui,11
“取出数据表中第10条到第20条记录”的sql语句+select top 用法
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。