Conditional Functions(条件函数)

文章目录


原文:Apache Spark SQL --- Conditional Functions

本分类按照 Spark SQL 官方目录函数顺序整理,共 12 个函数。


1、between

语法

sql 复制代码
input [NOT] between lower AND upper

说明

判断输入值是否处于给定下界和上界之间(或不在区间内)。

示例

sql 复制代码
> SELECT 0.5 between 0.1 AND 1.0;
  true

引入版本: 1.0.0

官方条目

2、case

语法

sql 复制代码
CASE expr1 WHEN expr2 THEN expr3 [WHEN expr4 THEN expr5]* [ELSE expr6] END

说明

依次比较表达式与各 WHEN 值,返回第一个匹配分支的结果,否则返回 ELSE。

示例

sql 复制代码
> SELECT CASE col1 WHEN 1 THEN 'one' WHEN 2 THEN 'two' ELSE '?' END FROM VALUES 1, 2, 3;
  one
  two
  ?

引入版本: 1.0.1

官方条目

3、coalesce

语法

sql 复制代码
coalesce(expr1, expr2, ...)

说明

返回首个非 NULL 参数;不存在时返回 NULL。

示例

sql 复制代码
> SELECT coalesce(NULL, 1, NULL);
  1

引入版本: 1.0.0

官方条目

4、if

语法

sql 复制代码
if(expr1, expr2, expr3)

说明

条件 expr1 为 TRUE 时返回 expr2,否则返回 expr3。

示例

sql 复制代码
> SELECT if(1 < 2, 'a', 'b');
  a

引入版本: 1.0.0

官方条目

5、ifnull

语法

sql 复制代码
ifnull(expr1, expr2)

说明

expr1 为 NULL 时返回 expr2,否则返回 expr1。

示例

sql 复制代码
> SELECT ifnull(NULL, array('2'));
  ["2"]

引入版本: 2.0.0

官方条目

6、nanvl

语法

sql 复制代码
nanvl(expr1, expr2)

说明

expr1 不是 NaN 时返回它,否则返回 expr2。

示例

sql 复制代码
> SELECT nanvl(cast('NaN' as double), 123);
  123.0

引入版本: 1.5.0

官方条目

7、nullif

语法

sql 复制代码
nullif(expr1, expr2)

说明

两参数相等时返回 NULL,否则返回 expr1。

示例

sql 复制代码
> SELECT nullif(2, 2);
  NULL

引入版本: 2.0.0

官方条目

8、nullifzero

语法

sql 复制代码
nullifzero(expr)

说明

expr 等于零时返回 NULL,否则返回原值。

示例

sql 复制代码
> SELECT nullifzero(0);
  NULL

引入版本: 4.0.0

官方条目

9、nvl

语法

sql 复制代码
nvl(expr1, expr2)

说明

expr1 为 NULL 时返回 expr2,否则返回 expr1。

示例

sql 复制代码
> SELECT nvl(NULL, array('2'));
  ["2"]

引入版本: 2.0.0

官方条目

10、nvl2

语法

sql 复制代码
nvl2(expr1, expr2, expr3)

说明

expr1 非 NULL 时返回 expr2,否则返回 expr3。

示例

sql 复制代码
> SELECT nvl2(NULL, 2, 1);
  1

引入版本: 2.0.0

官方条目

11、when

语法

sql 复制代码
CASE WHEN expr1 THEN expr2 [WHEN expr3 THEN expr4]* [ELSE expr5] END

说明

顺序检测 WHEN 条件,返回第一个条件为 TRUE 的分支结果,否则返回 ELSE。

示例

sql 复制代码
> SELECT CASE WHEN 1 > 0 THEN 1 WHEN 2 > 0 THEN 2.0 ELSE 1.2 END;
  1.0

引入版本: 1.0.1

官方条目

12、zeroifnull

语法

sql 复制代码
zeroifnull(expr)

说明

expr 为 NULL 时返回零,否则返回原值。

示例

sql 复制代码
> SELECT zeroifnull(NULL);
  0

引入版本: 4.0.0

官方条目

相关推荐
data analyse 4561 小时前
服务端统计时区切换的日期归并
大数据·前端·数据库·人工智能·数据分析
DongQiShanRen1 小时前
六根硬件映射(下):物理闭环五步法,抽一条已实装的看
大数据·jvm·人工智能·算法·rust·哈希算法·集成学习
远方16091 小时前
108-ORA-00600 [kdsgrp1-qetlbr] 内部错误排查与 RMAN 块级恢复
大数据·linux·数据库·oracle
话梅姐姐呀1 小时前
IOT -- 设备入网与注册
大数据·网络·人工智能·物联网·iot
大大大大晴天1 小时前
数据开发与任务治理:从表治理走向链路治理
大数据
一枕槐安4872 小时前
线上检索延迟 2 秒,我把向量库从 ES 换成了 Chroma
大数据·elasticsearch·搜索引擎
keke.shengfengpolang2 小时前
2027秋招项目复盘:数据科学与大数据技术专业如何从代码讲到业务价值
大数据
派小心.2 小时前
DAU和MAU怎么计算?先确定活跃事件、用户键和统计窗口
大数据·服务器·前端·人工智能·数据分析
是翎2 小时前
Vicquant的RAG评测盲区:20道文档问题漏掉18道,先查路由再看回答质量
大数据·人工智能