首页 > 解决方案 > 在 Oracle 中,我什么时候只在查询中使用关键字

问题描述

我正在学习 Oracle 认证课程,并且正在查看示例。讲师并没有真正谈论何时仅使用以及何时不使用。ONLY 关键字是在特定情况下使用的,并且是唯一的语义,还是它做了一些我错过的特定事情?

这是一个例子

SELECT product_name, quantity FROM inventory INNER JOIN products USING(product_id) ORDER BY quantity DESC FETCH NEXT 5 ROWS ONLY;

这是必需的吗?如果我不给出 ONLY 关键字会有所不同吗?

标签: sqloracle

解决方案


SELECT product_name, quantity
FROM   inventories
       INNER JOIN products USING(product_id)
ORDER BY quantity DESC
FETCH NEXT 5 ROWS ONLY;

这是必需的吗?如果我不给出 ONLY 关键字会有所不同吗?

让我们举一个简单的例子并运行它:

SELECT * FROM DUAL
ORDER BY DUMMY
FETCH NEXT 5 ROWS;

输出:

ORA-00905: missing keyword

然后:

SELECT * FROM DUAL
ORDER BY DUMMY
FETCH NEXT 5 ROWS ONLY;

输出:

X

db<>在这里摆弄

所以,是的,需要一个关键字;从语句的行限制子句的SELECT语法图中可以看出:

SELECT语句的行限制子句的语法图

FETCH然后您必须使用ONLYor结束行限制子句WITH TIES


推荐阅读