Hive 基本教程

Hive SQL

Hive 笔记

original icon
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.knowledgedict.com/tutorial/hive-case-when-and-or-nested-statements.html

Hive SQL 语句中 case when 多个条件及嵌套的用法

Hive 笔记 Hive 笔记


Hive SQL 语句中,case when 可以有多个条件的判断,也可以进行组合嵌套。

标准语法

case when 的完整语法如下:

CASE
  WHEN a THEN b
  WHEN c THEN d
  ELSE e 
END

CASEEND 可以看成是语句开启和关闭的标识,WHEN 后面跟着条件,与其对应的 THEN 表示结果,最后一个条件结果用 ELSE 收尾。

多个条件

case when 的所谓多个条件就是 when 的多个条件,主要通过 ANDOR 关键字进行,示例如下:

CASE
  WHEN a AND b THEN c
  WHEN d OR e THEN f
  ELSE g 
END

嵌套语句

case when 也可以进行嵌套组合,有了上述标准语法做基础,嵌套写法不难理解。

这里以女子是否选择相亲的决策树为例:

select
  CASE 
    WHEN age<30 THEN
      CASE 
        WHEN look = 'handsome' OR look = 'normal' THEN
          CASE 
            WHEN salary = 'high' THEN 'meeting'
            WHEN salary = 'low' THEN 'no meeting'
            ELSE
              CASE
                WHEN job = 'official' THEN 'meeting'
                ELSE 'no meeting'
              END
          END  
        ELSE 'no meeting'
      END
    ELSE 'no meeting'
  END
as meet_info

从上例可以看出,CASE ... END 作为一个整体可以,嵌套在 THENELSE 里面。

Hive SQL 条件函数 IF 是用于处理单个列的判断查询结果,形式为 if(条件表达式, 结果1, 结果2),相当于 java 中的三目 ...
SQL GROUP BY 语句将具有相同值的行分组,它通常和聚合函数(COUNT,MAX,MIN,SUM,AVG)等一起使用。 ...
Hive SQL 聚合统计函数 COUNT 类似于标准 SQL 的 COUNT 函数,用来计算符合条件的行数。 ...
Hive SQL 内置支持绝大多数 SQL 的内置函数,其中主要包括数学函数,类型转换函数,条件函数,字符函数,聚合函数,表生成函数等等。 ...
HiveQL 是 Hive 的查询语言。和普遍使用的所有 SQL 方言一样,它不完全遵守任何一种 ANSI SQL 标准的修订版。HiveQ ...