我试图找出下面哪一个更好,同时从源表中选择数据到目标表,以便所有 NULL 都被 '' 替换,并且字符串中没有空格。有什么区别还是两者相同
TRIM(NVL(col1,''))
或者:
NVL(TRIM(col1),'')
最佳答案
这两个表达式在功能上是等效的。
表达式TRIM(NVL(col1,''))
:
- 当
col1
包含空格时,NVL
返回原样,并且外部trim
删除空格 - 当
col1
为NULL
时,NVL
返回''
,其中trim
返回不变
表达式NVL(TRIM(col1),'')
:
- 当
col1
包含空格时,TRIM
会删除它们,并且外部NVL
保持结果不变 - 当
col1
为NULL
时,TRIM
返回NULL
,NVL
变成进入''
关于mysql - 从 hive 表中查询数据时,哪种状态最好排除 NULL 和空格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54513918/