HIVE Выберите как с Concat не работает - PullRequest
0 голосов
/ 04 июня 2018

У меня есть этот запрос

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 или что-то подобное.

Ответы [ 2 ]

0 голосов
/ 05 июня 2018

current - зарезервированное ключевое слово в кусте, поэтому, если у вас есть любое имя столбца, совпадающее с любым из зарезервированных ключевых слов в кусте, вам необходимо заключить этот столбец с помощью `` (обратная галочка).

0 голосов
/ 04 июня 2018

Current - это ключевое слово в Hive, вам нужно изменить псевдоним или объявить его с помощью могил (`), как следует

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 ...
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...