【问题标题】:In Oracle when do I use the keyword ONLY in a query在 Oracle 中,我什么时候只在查询中使用关键字
【发布时间】:2021-05-17 11:28:35
【问题描述】:

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

这是一个例子

选择 产品名称, 数量 从 库存 内连接产品 使用(product_id) 订购方式 数量 DESC 仅获取下 5 行;

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

【问题讨论】:

  • 如果您发布一些示例(您正在查看)可能会有所帮助。
  • 或者至少是您要询问的声明/条款。唯一立即想到的是select ... fetch clause,它可以是onlywith ties。不过,您可能正在完全看其他东西。
  • 你是对的。用于使用 FETCH 时的场景
  • 您的问题说“仅在查询中的关键字”。它没有提到12c row limiting clause

标签: sql oracle


【解决方案1】:
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;

输出:

DUMMY
X

db小提琴here

所以,是的,需要一个关键字;从row limiting clause of the SELECT statement 的语法图中可以看出:

然后您必须以ONLYWITH TIES 结束行限制FETCH 子句。

【讨论】:

    猜你喜欢
    • 2018-12-26
    • 2016-10-12
    • 1970-01-01
    • 1970-01-01
    • 2022-12-18
    • 1970-01-01
    • 2010-12-18
    • 2010-09-09
    相关资源
    最近更新 更多