2017-04-05 90 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 –