Hive中 case when then 的两种语法结构

时间:2025-04-08 18:04:08

Hive中 case when then 的两种语法结构:

  • 条件判断函数case  A when  B then C ,case和when是分开的

语法:CASE a WHEN b THEN c [WHEN d THEN e]* [ELSE f] END

说明:如果a等于b,那么返回c;如果a等于d,那么返回e;否则返回f。注意这种when的判断条件可以有很多个。如CASE 4 WHEN 5  THEN 5 WHEN 4 THEN 4 ELSE 3 END 将返回4。

示例1:

  1. select case 100
  2.     when 50 then 'tom'
  3.     when 100 then 'mary'
  4.     else 'tim' end
  5. from lxw_dual;
  6. --mary
  7. select case 200 when 50 then 'tom'when 100 then 'mary' else 'tim' end from lxw_dual;
  8. --tim

  • 这种语法第一个case when是一起的,用于处理单个列的查询结果,类似于if判断

语法:CASE WHEN a THEN b [WHEN c THEN d]* [ELSE e] END

说明:如果a为TRUE,则返回b;如果c为TRUE,则返回d;否则返回e  如:CASE WHEN  5>0  THEN 5 WHEN 4>0 THEN 4 ELSE 0 END 将返回5;CASE WHEN  5<0  THEN 5 WHEN 4<0 THEN 4 ELSE 0 END 将返回0。

示例2:

  1. select case when 1=2 then 'tom' when 2=2 then 'mary' else 'tim' end from lxw_dual;
  2. --mary
  3. select case when 1=1 then 'tom' when 2=2 then 'mary' else 'tim' end from lxw_dual;
  4. --tom