`
IT_zhlp80
  • 浏览: 41015 次
  • 来自: 北京
社区版块
存档分类
最新评论

sql server中top,oracle中rownum,mysql中limit伪列函数的使用

    博客分类:
  • SQL
阅读更多
sql server中top,oracle中rownum,mysql中limit函数

Sql server————//列出前5行
select top 5 * from table
//查询第11行到第20行记录
select top 10 * from [表名] where [主键] not in (select top 10 [主键] from [表名] order by
[排序字段及排序方法]) order by [排序字段及排序方法]
Oracle————//前5行
select * from table where rownum <= 5;
//第5到10行
select * from table where rownum<10
        minus
        select * from table where rownum<4;
类似可以实现分页功能
———以前经常用这种方法:
select * from (select rownum rn,title,id from CMS_ARTICLE where DISPLAY_PLACE in(0,2) and STATE=1 and CATEGORY_ID = 169) t
        where t.rn>16 and t.rn<20


MySQL————

实现Top N及M至N段的记录查询
我们可以利用MySQL中Select支持的一个子句——LIMIT——来完成这项功能。
limit可以实现top N查询,也可以实现M至N(某一段)的记录查询,具体语法如下:
select * from MYTABLE
        order by AFIELD
LIMIT offset, recnum
其中offset为从第几条(M+1)记录开始,recnum为返回的记录条数。例:
select * from mytable
        order by afield
        limit 2, 5
即表示从第3条记录开始的5条记录。
_____________________________________________________________________________


sqlserver:

select top 10 * from table where [column id] not in ( select top 10 [column id] from table )

以下选择87~96行的10行数据:

select top 10 id from (select top 96 id from aa order by id asc)as kk order by id desc

这些语句可以用于不同数据库的分页

随机10行:

select top 10 * from aa order by newid()

oracle:

SELECT * FROM table WHERE ROWNUM<101;
minus
SELECT * FROM table WHERE ROWNUM<91;

mysql:

select * from table limit 5,5

第一个5是开始的行号,第二个5是选择纪录的数量

分享到:
评论

相关推荐

    Oracle Sql语句转换成Mysql Sql语句

    在数据库管理领域,Oracle SQL和MySQL SQL是两种广泛使用的SQL方言,它们在语法和功能上存在一定的差异。当需要将一个基于Oracle SQL的应用程序迁移到MySQL环境时,就需要进行SQL语句的转换工作。本项目提供了一个...

    Sqlserver、Oracle、MySql、PostgreSql、SqlLite数据库差异

    - 实现方式略有不同,例如在 Sqlserver 中可以使用 `IDENTITY` 关键字,在 Oracle 中则使用序列(`SEQUENCE`)。 - **表名规范**: - 各数据库在命名规则上略有不同,但普遍推荐使用有意义的英文单词或短语,并遵循...

    sql分页(sqlserver,mysql,oracle )

    不同的数据库系统,如SQL Server、MySQL、Oracle,由于其设计原理和语法的不同,在实现分页功能上也有所差异。下面将详细介绍这三种数据库系统的分页方法。 ### SQL Server 分页 SQL Server 中实现分页主要通过`...

    数据库分页大全,oracle,sqlserver,mysql

    Oracle中可以通过`ROWNUM`伪列实现分页功能: ```sql SELECT * FROM ( SELECT a.*, ROWNUM num FROM ( SELECT * FROM t_order ) a WHERE ROWNUM ) WHERE num &gt;= 5; ``` 这个例子中先筛选出行号不超过15的...

    数据库迁移及区别比较(Oracle,Sql Server,MySql).docx

    3. **分页**:MySQL常使用`LIMIT`和`OFFSET`进行分页,而SQL Server和Oracle使用`ROW_NUMBER()`窗口函数或`ROWNUM`。 4. **内置函数**:每个数据库都有自己的内置函数集合,例如,Oracle的`DBMS_OUTPUT.PUT_LINE`在...

    用于oracle,mysql,sqlserver,数据库分页联合查询

    本话题主要聚焦于如何在Oracle、MySQL和SQL Server这三种主流关系型数据库中实现分页联合查询。 首先,我们来看Oracle数据库的分页查询。Oracle使用ROWNUM关键字来实现分页。例如,如果我们想获取第10到20条记录,...

    SQLServer,MySQL,Oracle三者的区别.docx

    - 翻页的SQL语句处理:Oracle使用ROWNUM,MySQL使用LIMIT。 - 长字符串的处理:Oracle支持更大的字符串长度,MySQL则相对较小。 - 日期字段的处理:Oracle提供更多的日期和时间函数,MySQL的处理相对简单。 - 空字符...

    Oracle,mysql,sqlserver等各种数据库的分页方法

    Oracle数据库提供了`ROWNUM`伪列来进行分页查询,但在使用时需要注意一些细节。 #### 3. 使用`ROWNUM`伪列 - **获取指定范围的数据**(例如第2至第3条记录): ```sql SELECT ID FROM ( SELECT ID, ROWNUM AS ...

    SQLServer,MySQL,Oracle三者的区别.pdf

    - **翻页SQL**:Oracle使用ROWNUM进行分页,MySQL使用LIMIT。 - **长字符串处理**:Oracle处理长字符串更为灵活。 - **日期字段**:Oracle的日期时间类型更丰富,处理更为精确。 - **空字符处理**:Oracle和...

    mysql和oracle和sql语句

    比如,SQL Server中的`TOP`关键字用于限制返回的行数,而MySQL和Oracle则使用`LIMIT`(MySQL)或`ROWNUM`(Oracle)。 在文件名中提到的"oracle常用sql语句.txt"可能包含Oracle的一些常见操作,如`SELECT`用于查询...

    Mysql转oracle工具

    例如,MySQL支持的`LIMIT`在Oracle中需用`ROWNUM`或`FETCH FIRST`来实现分页;MySQL的`INFORMATION_SCHEMA`在Oracle中对应的是`DBA_`或`USER_`视图;此外,存储过程、触发器和函数的语法也有区别。 2. **数据类型...

    关于SQL Server SQL语句查询分页数据的解决方案

    在Oracle数据库中,实现分页查询的方法略有不同,主要是利用`ROWNUM`函数。例如,从表`Sys_option`(主键为`sys_id`)中从第10条记录开始检索20条记录,可以使用以下SQL语句: ```sql SELECT * FROM ( SELECT ...

    mybatis分页插件,支持kingbase、tdengine、达梦、mysql、oracle、sqlserver等数据库

    首先,MyBatis分页插件的核心功能是自动为SQL语句添加分页条件,这包括LIMIT子句(对于MySQL、MariaDB等)和ROWNUM或ROWNUMBER()(对于Oracle、SQLServer等)。通过这种方式,开发者无需手动编写复杂的分页查询,只...

    常用数据库sql分页

    常见的数据库管理系统包括MySQL、SQL Server、Oracle、DB2等,每种数据库管理系统都有其特有的分页机制和语法。 MySQL分页 MySQL的分页语句使用LIMIT关键字,语法为: ```sql SELECT * FROM table_name LIMIT ...

    oracle、mysql数据库分页.pdf

    Oracle使用`ROWNUM`伪列进行分页。基本思路是先通过子查询获取所有满足条件的行,并为其分配行号(ROWNUM),然后在外层查询中根据需要的页码筛选出特定范围的行。例如,如果要获取第`min`行到第`max`行的数据,可以...

    oracle、mysql数据库分页

    在Oracle数据库中,实现分页查询可以通过多种方法,其中一种常见的方法是使用`ROWNUM`伪列来实现。 **基本原理:** - `ROWNUM`用于标识查询结果集中的行编号。 - `ROWNUM`在查询时自动递增,初始值为1。 **具体...

    数据库分页SQL语句实现

    - Oracle 的`ROWNUM`伪列只能用于查询语句,不能在子查询中使用。如果需要在子查询中使用`ROWNUM`,则需要使用其他方法,如通过`CONNECT BY`或`WITH`语句。 - Oracle 12c 及以上版本支持使用`OFFSET`和`FETCH`...

    mysql,mssql,oracle分页精典代码集锦

    虽然 MySQL 不支持 ROW_NUMBER 函数,但在其他数据库系统如 SQL Server 或 Oracle 中是可用的。这里给出一个 SQL Server 示例: ```sql SELECT TOP 5 * FROM (SELECT ROW_NUMBER() OVER (ORDER BY id) AS row...

    oracle、mysql数据库分页参照.pdf

    Oracle采用的是ROWNUM伪列来实现分页。以下是一个基本的分页查询示例: ```sql SELECT * FROM ( SELECT rownum AS rownum_, t.* FROM ( -- query_SQL 是你的原始查询 SELECT * FROM your_table ) t WHERE ...

Global site tag (gtag.js) - Google Analytics