从 hive 表中查询数据时,哪种状态最好排除 NULL 和空格

Posted

技术标签:

【中文标题】从 hive 表中查询数据时,哪种状态最好排除 NULL 和空格【英文标题】:which state is better to exclude NULL as well as spaces while querying the data from hive table 【发布时间】:2019-02-04 10:11:23 【问题描述】:

在从源表选择数据到目标表时,我试图找出下面哪一个更好,因此所有 NULLS 都被替换为 '' 并且字符串中没有空格。有什么区别还是都一样

TRIM(NVL(col1,''))

或者:

NVL(TRIM(col1),'')

【问题讨论】:

nvl(col1, '') 一个人就可以完成这项工作,除此之外不需要修剪功能 【参考方案1】:

这两个表达式在功能上是等效的。

表达式TRIM(NVL(col1,''))

col1 包含空格时,NVL 将原样返回,而外部trim 删除空格 当col1NULL时,NVL返回''trim返回不变

表达式NVL(TRIM(col1),'')

col1 包含空格时,TRIM 将其删除,而外部NVL 保持结果不变 当col1NULL时,TRIM返回NULL,那NVL变成''

【讨论】:

以上是关于从 hive 表中查询数据时,哪种状态最好排除 NULL 和空格的主要内容,如果未能解决你的问题,请参考以下文章