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

来源:互联网 发布:bape淘宝正品店推荐 编辑:程序博客网 时间:2024/05/24 06:19

Sql Server :

Sql代码

  1. selecttop X *from table_name--查询前X条记录,可以改成需要的数字。
  2. selecttop n *from (selecttop m *from table_nameorderby column_name ) aorderby column_namedesc--查询第N到M条记录。常用的分页也是这种方式。
  3. 例如常用的分页方式:
  4. declare @pageint
  5. declare @rowint
  6. set @page=2--页数
  7. set @row=3--每页展示行数
  8. selecttop (@row) *from (selecttop (@row*@page) *from table_nameorderby id ) aorderby iddesc--最基本的分页方式,改变@row和@page达到分页效果

 

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

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

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

Sql代码 
  1. select *from (select *from usersorderby id limit 0 , 10) partOfUsersorderby iddesc limit 0 , 5;

ORACLE查询前十条的方法:

Sql代码
  1. select *from table_namewhere rownum<X--X为前多少条记录
  2. select *from (select a.*,a.rownum rnfromselect * from table_name) a where a.rownum<M)where rn>n--这句就是从n到m也的数据,分为三层结构
原创粉丝点击