[转帖]SQL查询前10条记录(SqlServer/mysql/oracle)语法分析_Android, Python及开发编程讨论区_Weblogic技术|Tuxedo技术|中间件技术|Oracle论坛|JAVA论坛|Linux/Unix技术|hadoop论坛_联动北方技术论坛  
网站首页 | 关于我们 | 服务中心 | 经验交流 | 公司荣誉 | 成功案例 | 合作伙伴 | 联系我们 |
联动北方-国内领先的云技术服务提供商
»  游客             当前位置:  论坛首页 »  自由讨论区 »  Android, Python及开发编程讨论区 »
总帖数
1
每页帖数
101/1页1
返回列表
0
发起投票  发起投票 发新帖子
查看: 3668 | 回复: 0   主题: [转帖]SQL查询前10条记录(SqlServer/mysql/oracle)语法分析        下一篇 
Jenny
注册用户
等级:少校
经验:881
发帖:68
精华:0
注册:2013-1-15
状态:离线
发送短消息息给Jenny 加好友    发送短消息息给Jenny 发消息
发表于: IP:您无权察看 2013-1-21 8:54:07 | [全部帖] [楼主帖] 楼主

SQL查询前10条记录(SqlServer/mysql/oracle)语法分析

Sql Server :


Sql代码

select top X * from table_name --查询前X条记录,可以改成需要的数字。
select top n * from (select top m * from table_name order by column_name ) a order by column_namedesc --查询第N到M条记录。常用的分页也是这种方式。


例如常用的分页方式:    

declare @page int
declare @row int
set @page=2 --页数
set @row=3 --每页展示行数
select top (@row) * from (select top (@row*@page) * from table_name order by id ) a order by iddesc --最基本的分页方式,改变@row和@page达到分页效果

MYSQL


查询前10条的方法(limit参数的第一个参数n(如下面的0或1)表示前n条记录是不在选择范围内,相当于hibernate的setFirstResult的参数加一;第二个参数表示要选择的记录条数,相当于hibernate的setMaxResult的参数):


Sql代码

select * from table_name limit 0,10 --通常0是可以省略的,直接写成 limit 10。0代表从第0条记录后面开始,也就是从第一条开始
select * from table_name limit 1,10 --则为从第一条后面的记录开始展示,也就是说从第二条开始。


MySQL查询前5条方法(假设一个表为users表,这里作为子查询时要加入别名不然会出错,还有一点要注意的是order by在limit前面,不然还没出结果前就说要前几条,怎么搞嘛,所以limit要放最后。):

Sql代码

select * from (select * from users order by id limit 0 , 10) partOfUsers order by id desc limit 0 , 5;
ORACLE


查询前十条的方法:

Sql代码

select * from table_name where rownum<X --X为前多少条记录
select * from (select a.*,a.rownum rn from (select * from table_name) a where a.rownum<M)where rn>n --这句就是从n到m也的数据,分为三层结构




赞(0)    操作        顶端 
总帖数
1
每页帖数
101/1页1
返回列表
发新帖子
请输入验证码: 点击刷新验证码
您需要登录后才可以回帖 登录 | 注册
技术讨论