**
sql limit top函数区别
**
1.mysql
可以用limit函数
select * from table_name
order by id --可以先按需求对字段排序
limit n ; --取从第一条记录开始到第n条数据
如果不是从第一条开始取,可以在limit后面加数字,比如从第6条开始取3条(即取6,7,8),则limit5,3
同时为了兼容Postgres ,mysql 也支持,limit#offset#
2、Postgres
可以用limit函数
但是与mysql区别的是不支持limit n,m语法,可以limit n,如不是从第一条数据开始取,可以与offset 一起用,如要取第6,7,8条记录则
select * from table_name
order by id
limit 3
offset 5 ;
3、sqlserver
sqlserver没有limit函数,但可以用top函数
如取前n条记录,可以
select top n * from table_name
order by id ;
如要取表的10% 数据,则top 10 persent ,若取的top最后一行有相同值,也要取上可以用top n with ties (n为条数)
如要取第6,7,8条记录则
select top 3 * from table_name
where id (select top 5 id from table_name order by id );
4、oracle
oracle没有limit和top函数,可以通过rownum(rownum只能用<,<=,不能用>,>=,=)来取,
select * from table_name
where rownum<=n;
如要取第6,7,8条记录则
select * from table_name where rownum<8 minus select * from table_name rownum<6;