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_name
desc
--查询第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
id
desc
--最基本的分页方式,改变@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也的数据,分为三层结构