2016-06-09 2 views
0

Есть ли какая-либо функция для замены NULL или пустого пространства специальным символом в улье? когда я исполню ниже заявление он возвращает семантического исключение с указанием облицовка работает только на строках/NVARCHARЗаменить NULL с помощью функции

CASE 
WHEN TRIM(q.address) = '' OR q.address IS NULL THEN '?' 
ELSE q.address END as address 

Пожалуйста, помогите.

+0

Можете ли вы вставить более крупный оператор, который вы пытаетесь выполнить? Каковы типы данных полей в таблице? – Jared

ответ

1

Используйте LENGTH(), чтобы проверить длину значения столбца. Он возвращает> 0, если есть какое-то значение else return 0 для пустого или NULL-значения.

Кроме того кадра значение столбца в случае, когда ... END блок

Окончательный запрос может выглядеть следующим образом:

SELECT CASE WHEN LENGTH(address) > 0 THEN address ELSE '?' END AS address 
FROM table_name; 

Пожалуйста, обратитесь Replace the empty or NULL value with specific value in HIVE query result

Надежда это поможет вам !!!

0

Для того, чтобы заменить аннулирует можно использовать Coalesce

Coalesce(q.address, '?') 

Но, похоже, ваше поле адрес не надлежащего типа использовать накладку, вы можете показать нам тип этого поля?

Смежные вопросы