2017-04-05 52 views
0

我運行類似於在蜂巢查詢:「<EOF>」

SELECT * 
FROM (SELECT a 
     FROM b 
     WHERE 
     sex = 'M' 
     AND degree = 'Bs' 
     AND age = 15 
     AND name LIKE 'L%' 
    ); 

的錯誤是:

cannot recognize input near '<EOF>' '<EOF>' '<EOF>' in subquery source 
+0

您是否嘗試刪除'AND'條件以查看哪個給您的錯誤? –

+0

「類似」並沒有幫助,因爲它看起來像一個語法問題 –

+0

杜杜馬爾科維茨:通過simiar,我的意思是我只是將表名改爲a和b以及列名來老化,否則它是完全一樣的。 – Cyrus

回答

5

增加對您的子查詢表的別名是必要的蜂巢。下面我用't1'作爲別名:

SELECT * 
FROM (SELECT a 
    FROM b 
    WHERE 
    sex = 'M' 
    AND degree = 'Bs' 
    AND age = 15 
    AND name LIKE 'L%' 
) t1 ; 
0

所有的反對票都是不合理的。 Hive通常不會產生正確的錯誤,並會在您身上拋出懶惰的「EOF」。在這種情況下,您只需爲您的子查詢指定表別名。 SELECT * FROM (.....) tbl_alias

+0

我想一些蜂巢粉絲只是對任何提到蜂巢bug –