我有这个查询
SELECT
CASE WHEN (enddate is NULL) THEN "Current" ELSE CONCAT(
to_date(from_unixtime(startdate * 24 * 60 * 60)),
' - ',
to_date(from_unixtime(enddate * 24 * 60 * 60))
) END as Current
FROM
table
我收到此错误cannot recognize input near 'as' 'Current' ',' in selection target
但是当我取出as Current
时,它有效。我只是想改变列名,而不是显示_c1
或类似的东西。
答案 0 :(得分:0)
Current是Hive中的关键字,您需要更改别名或使用graves(`)声明它,如下所示
SELECT
CASE WHEN (enddate is NULL) THEN "Current" ELSE CONCAT(
to_date(from_unixtime(12 * 24 * 60 * 60)),
' - ',
to_date(from_unixtime(12 * 24 * 60 * 60))
) END as `Current`
from ...
答案 1 :(得分:0)
当前是hive中的保留关键字,因此如果您有任何列名与hive中的任何保留关键字匹配,那么您需要用``(后退)来包围该列