2012-02-28 188 views
0

我從視圖中使用以下查詢甲骨文,ORDER BY與視圖導致錯誤

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沒有errormessages。子查詢如下:

(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 < 9999999」,我擺脫錯誤的。我們正在運行版本10.2.0.4.0 64位。

+1

您可以發佈視圖定義呢? (如果不是太大) – mindandmedia 2012-02-28 08:33:26

+1

MyView中有什麼?很可能您的MyView正在使用GROUP BY。 – 2012-02-28 08:33:37

+0

總是有適當的'tags' – 2012-02-28 08:39:00

回答

0

也許你試圖執行一個SELECT聲明,其中包括一個GROUP BY功能(即:MINMAXSUMCOUNT)和SELECT列表不是GROUP BY子句中的表達式。