What's the best way to write if/else if/else i

2019-04-04 10:48发布

Hive uses IF(condition, expression, expression), so when I want to do if / else if / else if / else, I have to do:

IF(a, 1, IF(b, 2, IF(c, 3, 4)))

Is there a better way to do this that's more readable?

Looking for something similar to the standard

if (a) {
  1
} else if (b) {
  2
} else if (c) {
  3
} else {
  4
}

标签: hive hql
2条回答
甜甜的少女心
2楼-- · 2019-04-04 11:25

You can use Hive Conditional CASE WHEN function for if-else scenario. The CASE Statement will provide you better readability with the same functionality.

CASE
  WHEN (condition1) THEN result1
  WHEN (condition2) THEN result2
  WHEN (condition3) THEN result3 
  WHEN (condition4) THEN result4
  ELSE result_default 
END AS attribute_name
查看更多
看我几分像从前
3楼-- · 2019-04-04 11:29

The best way to handle if else will be to write customize UDF for particular column.

查看更多
登录 后发表回答