【发布时间】: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