2012-11-14 49 views
0

我有問題排序interbase中的數據,我的時間戳是在年,月,日等分隔列,所以我需要按順序排序(雖然在這種情況下它甚至不能通過單一領域來訂購)。 由於某些原因,當與CREATE VIEW或INSERT INTO一起使用時,ORDER命令會引發'token unknown'錯誤。我是在這裏做一個愚蠢的語法錯誤,還是有一個更重要的問題,我試圖糾正ORDER命令?使用順序創建視圖或插入Interbase

CREATE VIEW HOURLY_AVES_SORT (MEASYEAR,MEASMONTH,MEASDAY,MEASHOUR,GH,GK,GDH,TA) as 
SELECT 
    HOURLY_AVES_ALL.MEASYEAR, HOURLY_AVES_ALL.MEASMONTH, HOURLY_AVES_ALL.MEASDAY, 
    HOURLY_AVES_ALL.MEASHOUR, /*HOURLY_AVES.MEASMIN, HOURLY_AVES_ALL.MEASSECOND, */ 
    HOURLY_AVES_ALL.GH, HOURLY_AVES_ALL.GK, HOURLY_AVES_ALL.GDH, HOURLY_AVES_ALL.TA 

FROM HOURLY_AVES 

ORDER BY 
    HOURLY_AVES_ALL.MEASYEAR, HOURLY_AVES_ALL.MEASMONTH, HOURLY_AVES_ALL.MEASDAY, 
    HOURLY_AVES_ALL.MEASHOUR 

試圖將數據複製到另一個表,而不是一個視圖,拋出同樣未知的錯誤,即:

INSERT INTO HOURLY_AVES_SORTED 
(MEASYEAR,MEASMONTH,MEASDAY,MEASHOUR,GH,GK,GDH,TA) 

SELECT 
HOURLY_AVES_ALL.MEASYEAR, HOURLY_AVES_ALL.MEASMONTH, HOURLY_AVES_ALL.MEASDAY, 
HOURLY_AVES_ALL.MEASHOUR, /*HOURLY_AVES.MEASMIN, HOURLY_AVES_ALL.MEASSECOND, */ 
HOURLY_AVES_ALL.GH, HOURLY_AVES_ALL.GK, HOURLY_AVES_ALL.GDH, HOURLY_AVES_ALL.TA 

FROM HOURLY_AVES 

ORDER BY 
(MEASYEAR, MEASMONTH, MEASDAY,MEASHOUR, GH, GK,GH, TA) 

任何提示非常受歡迎,布賴恩

+0

Interbase的版本是什麼? Interbase的舊版本(即開源的版本6)不支持視圖的SELECT語句中的ORDER BY子句。火鳥在版本2中實現它,我不確定關於Interbase。 – ain

+0

嗨,我在Interbase 2009中使用EMS SQL管理器 – SolarBrian

+0

視圖中的ORDER BY沒有意義。一個視圖基本上就像一張桌子 - 這是***沒有***命令。只需從視圖中選擇即可添加訂單。 –

回答

2

Interbase不支持ORDER BY子句中的SELECT聲明的觀點。請參閱文檔page 8-4 in the Data Definition Guide(從書籤「使用視圖」 - >「創建視圖」 - >「使用SELECT語句」)中選擇頁面時可以找到該頁面)。

+0

嗯,好吧,我得到的印象也有使用INSERT INTO和OR​​DER的衝突。如果我使用ORDER既沒有INSERT INTO也沒有CREATE視圖,它工作正常。我可以通過查詢運行SELECT..ORDER並保存爲csv然後重新導入數據來解決此問題。 – SolarBrian

+0

有序插入是什麼原因? –

+0

Andrej,好點。我習慣於按時間順序查看數據,因爲如果事情不正確,更容易發現。但是的確如此,我可以將它命令爲一個單獨的SELECT-ORDER BY腳本來查看或導出,如果它們之間沒有順序,則不用太擔心。 – SolarBrian

1

嘗試使用列號碼:

CREATE VIEW HOURLY_AVES_SORT (MEASYEAR,MEASMONTH,MEASDAY,MEASHOUR,GH,GK,GDH,TA) as 
SELECT 
    h.MEASYEAR, h.MEASMONTH, h.MEASDAY, h.MEASHOUR, 
    h.GH, h.GK, h.GDH, h.TA 

FROM 
    HOURLY_AVES h 

ORDER BY 
    1, 2, 3, 4 
+0

Andrej,感謝您的提示,我沒有遇到過列號,可悲的是,當同時使用INSERT INTO/CREATE VIEW和ORDER BY時,它仍然拋出'token unknown'錯誤。 – SolarBrian