在从源表到目标表中选择数据时,我试图找出以下哪一个更好,以便所有 NULL 都替换为"并且字符串中没有空格。 是否有任何区别或两者都相同
TRIM(NVL(col1,''))
或:
NVL(TRIM(col1),'')
这两个表达式在功能上是等效的。
表达式TRIM(NVL(col1,''))
:
- 当
col1
包含空格时,NVL
将其原封不动地返回,外部trim
删除空格 - 当
col1
NULL
时,NVL
返回''
,trim
返回不变
。
表达式NVL(TRIM(col1),'')
:
- 当
col1
包含空格时,TRIM
删除它们,而 outrNVL
保持结果不变 - 当
col1
NULL
时,TRIM
返回NULL
,该NVL
变成''