首页 > 数据库 >Oracle Fetch(限制行数)子句

Oracle Fetch(限制行数)子句

时间:2025-01-21 08:59:44浏览次数:1  
标签:查询 Fetch 子句 Oracle TIES NEXT FETCH

目录
FETCH 子句在 Oracle 中可以用来限制查询返回的行数,仅能在 Oracle 12c 以上版本执行。

Oracle FETCH 子句语法

以下说明了行限制子句的语法:

[ OFFSET offset ROWS]
 FETCH  NEXT [  row_count | percent PERCENT  ] ROWS  [ ONLY | WITH TIES ]

OFFSET 子句

OFFSET 子句指定在行限制开始之前要跳过行数。OFFSET 子句是可选的。 如果跳过它,则偏移量为 0,行限制从第一行开始计算。
偏移量必须是一个数字或一个表达式,其值为一个数字。偏移量遵守以下规则:

  • 如果偏移量是负值,则将其视为 0。
  • 如果偏移量为 NULL 或大于查询返回的行数,则不返回任何行。
  • 如果偏移量包含一个分数,则分数部分被截断。

FETCH子句

FETCH 子句指定要返回的行数或百分比。
为了语义清晰的目的,您可以使用关键字 ROW 而不是 ROWS,FIRST 而不是 NEXT。 例如,以下子句的行为和产生的结果相同:

FETCH NEXT 1 ROWS
FETCH FIRST 1 ROW

ONLY | WITH TIES 选项

ONLY: 不包含相同结果
WITH TIES: 包含相同结果
仅返回 FETCH NEXT(或 FIRST)后的行数或行数的百分比。
WITH TIES 返回与最后一行相同的排序键。请注意,如果使用 WITH TIES,则必须在查询中指定一个 ORDER BY 子句。如果不这样做,查询将不会返回额外的行。

Oracle FETCH 子句实例

获取前 N 行记录的示例

以下语句返回库存量最高的前 10 个产品:

-- 以下查询语句仅能在 Oracle 12c 以上版本执行
SELECT
    product_name,
    quantity
FROM
    inventories
INNER JOIN products
        USING(product_id)
ORDER BY
    quantity DESC 
FETCH NEXT 5 ROWS ONLY;

2. WITH TIES 示例

以下查询使用 WITH TIES 选项的行限制子句:

-- 以下查询语句仅能在 Oracle 12c 以上版本执行
SELECT
 product_name,
 quantity
FROM
 inventories
INNER JOIN products
 USING(product_id)
ORDER BY
 quantity DESC 
FETCH NEXT 10 ROWS WITH TIES;

即使查询请求了 10 行数据,因为它具有 WITH TIES 选项,查询还返回了另外两行。 请注意,这两个附加行在 quantity 列的值与第 10 行 quantity 列的值相同。

标签:查询,Fetch,子句,Oracle,TIES,NEXT,FETCH
From: https://www.cnblogs.com/TMesh/p/18682837

相关文章

  • oracle 获取当前时间戳
    oracle获取当前时间戳Oracle中获取当前时间戳有多种实现方法: 使用SYSTIMESTAMP函数:    SELECTSYSTIMESTAMPFROMDUAL;   使用CURRENT_TIMESTAMP函数:    SELECTCURRENT_TIMESTAMPFROMDUAL;   使用SYSDATE函数......
  • oracle设置数据库表空间自动扩展时注意事项
    在设置数据库表空间自动扩展时,需要注意以下几个关键事项,以确保数据库的稳定性和性能:确保足够的可用空间在启用表空间自动扩展之前,必须确保磁盘上有足够的可用空间来容纳扩展后的数据文件。--磁盘组空间占用百分比查询SELECTGROUP_NUMBER,NAME,TYPE,STATE,TOTAL_MB/1......
  • Oracle Fusion Middleware Software Downloads
    OracleFusionMiddlewareSoftwareDownloadsOracleFusionMiddlewareisOracle’sdigitalsolutionforsmall,midsize,andenterprisebusinesses.Itenablesorganizationstoefficientlycreateandrunagile,intelligentapplicationsinclient-server,web,......
  • Oracle GoldenGate product family
    [IntroductiontoOracleGoldenGate](https://docs.oracle.com/goldengate/c1230/gg-winux/GGCON/introduction-oracle-goldengate.htm) Therearenumerousproductsinthe OracleGoldenGate productfamily.OracleGoldenGate Veridata : OracleGoldenGate Ver......
  • oracle使用case when报错ORA-12704字符集不匹配原因分析及解决方法
    问题概述使用oracle的casewhen函数时,报错提示ORA-12704字符集不匹配,如下图,接下来分析报错原因并提出解决方法。样例演示现在有一个TESTTABLE表,本表包含的字段如下图所示,COL01字段是NVARCHAR2类型,COL02字段是VARCHAR2类型。场景一使用case简单函数,case后面的内容和when......
  • Oracle LogMiner SCN 跳跃检测分析
    OracleLogMinerSCN跳跃检测分析1.SCN跳跃的概念SCN跳跃是指在连续的日志记录中,发现两个相邻记录的SCN之间存在较大的间隙。这可能意味着:数据丢失归档日志缺失数据库重启系统时间调整2.检测机制2.1基本检测逻辑publicbooleanhasScnJump(ScncurrentSc......
  • 【详解】Hive怎样写exist/in子句
    目录Hive怎样写exist/in子句1.EXISTS子句示例2.IN子句示例3.EXISTSvsIN示例场景使用​​EXISTS​​子句示例1:查找有订单的客户使用​​IN​​子句示例2:查找有订单的客户性能考虑示例3:查找没有订单的客户使用​​NOTEXISTS​​使用​​NOTIN​......
  • Docker 安装 Oracle
    目录oracle10g1、拉取镜像2、重新tag镜像3、启动容器4、进入容器5、修改oracle相关配置oracle11g1、拉取镜像2、创建数据目录并设置权限3、启动容器4、进入容器5、修改oracle相关配置oracle12c1、拉取镜像2、创建数据目录并设置权限3、启动容器4、进入容器5、修改oracle相......
  • Oracle约束的启用和停用
    一、约束的状态    可以指定启用(ENABLE)或者停用(DISABLE)约束。如果启用约束,当在数据库中输入或者更新数据时要进行数据检查,不符合约束规则的数据不能输入数据库。如果停用约束,那么不符合规则的数据也能输入到数据库中。 另外,也能制定表中的现有数据必须符合约束(VALIDA......
  • oracle job每隔一天,Oracle JOB间隔时间详解
    Oracle JOB间隔时间详解INTERVAL参数设置:每天运行一次                       'SYSDATE+1'每小时运行一次                    'SYSDATE+1/24'每10分钟运行一次                'SYSDATE+10/(60*24)'......