【问题标题】:Oracle, ORDER BY with view results in errorOracle,带有视图的 ORDER BY 导致错误
【发布时间】:2012-03-17 17:31:22
【问题描述】:

我正在使用以下查询从视图中选择数据

SELECT * FROM "SCH"."MyView"

如果我添加 ORDER BY

SELECT * FROM "SCH"."MyView"
ORDER BY Name

我收到以下错误

[Err] ORA-00979: not a GROUP BY expression

Oracle 查询引擎是否会将其转换为无效查询?如何开始对此类问题进行故障排除?

这里是“SCH”的简化版。“MyView”

SELECT
    Name,
    (subquery) AS Foo,
    (subquery) AS Bar
FROM
    "SCH"."AnotherView"
GROUP BY 
    Name

如果我删除子查询,我可以使用 ORDER BY 而不会出现错误消息。子查询如下:

( SELECT f.UnitPrice FROM "SCH"."AnotherView" f WHERE f.Name = main.Name AND f.Category = 'x' AND rownum < 2 ) AS priceX
( SELECT b.UnitPrice FROM "SCH"."AnotherView" b WHERE b.Name = main.Name AND b.Category = 'y' AND rownum < 2 ) AS priceY

编辑:如果我添加“WHERE rownum

【问题讨论】:

  • 您也可以发布视图定义吗? (如果不是太大)
  • MyView 中有什么?很可能您的 MyView 正在使用 GROUP BY。
  • 视图有 GROUP BY,列名也在 GROUP BY 中。
  • 发布您拥有的VIEW 代码...
  • @Morri,您可以编辑您的问题以添加视图定义。无需将其添加到 cmets。

标签: oracle views sql-order-by ora-00979


【解决方案1】:

也许您尝试执行包含GROUP BY 函数的SELECT 语句(即:MINMAXSUMCOUNT)和SELECT 列表中的表达式不在GROUP BY 子句中。

【讨论】:

    猜你喜欢
    • 2020-06-23
    • 2013-01-16
    • 2019-12-12
    • 1970-01-01
    • 2015-08-25
    • 1970-01-01
    • 2016-08-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多