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

官方条目

相关推荐
飞飞传输18 小时前
飞驰云联文件交换建设方法论:从单点传输到持续治理
大数据·运维·安全
得帆低代码PaaS18 小时前
企业级 Agent 架构:MCP、Integration、数据与治理能力
大数据·人工智能·架构·ai agent·企业数字化·mcp
阿里云大数据AI技术1 天前
EMR Serverless Ray:让 AI 推理融入数据处理
人工智能·spark
TDengine (老段)1 天前
TDengine IDMP 十大实用功能(9)
大数据·数据库·人工智能·物联网·时序数据库·tdengine·idmp
播播资源1 天前
同账户实测 11 个多模态模型:图像 0.03 元起、竖屏视频 8 元一条,最贵和最便宜差 267 倍
大数据·人工智能·深度学习
全栈陈序员1 天前
Git】从入门到精通(八)—— git log:查看提交历史
大数据·git·elasticsearch
演艺大赏1 天前
NiFi 从 3 台扩到 25 台:三轮扩容后我才明白,证书必须全量重签、安装包绝对不能拷
大数据
做科研的周师兄1 天前
【R语言实战】MixSIAR 氢氧同位素水源解析全流程:从混合空间校验到贝叶斯 MCMC 收敛诊断(后附完整代码)
java·大数据·开发语言
isfox1 天前
MapReduce 数据清洗:脏数据进来,干净数据出去,连 Reduce 都省了
大数据
Francek Chen1 天前
【大数据处理与分析】数据仓库Hive:09 Hive 编程实践
大数据·数据仓库·hive·hadoop·sql