Redshift:合并无法按预期工作
Redshift : Coalesce Can't Work As Expected
我们在 Redshift 上将空值补充为全零值,例如“00”。
有时,我发现 coalesce 函数不能像我们预期的那样工作。
如果我们使用 case 和 len,它可以正常工作,如下所示;
-- not work
SELECT coalesce(code_a, '00') FROM test; --> code_a returns nothing.
-- works fine
SELECT case when len(code_a)=0 then '00' else code_a end as code_a FROM test;
--> code_a returns 00 as expected.
到目前为止,我不知道为什么 coalesce 不能工作。任何意见,将不胜感激。
谢谢。
''
和 NULL
之间存在差异——我应该注意这是 预期的。
您可以通过以下两种方式之一解决此问题:
coalese(nullif(code_a, ''), '00')
或使用 case
表达式:
(case when code_a <> '' then code_a else '00' end)
我们在 Redshift 上将空值补充为全零值,例如“00”。 有时,我发现 coalesce 函数不能像我们预期的那样工作。 如果我们使用 case 和 len,它可以正常工作,如下所示;
-- not work
SELECT coalesce(code_a, '00') FROM test; --> code_a returns nothing.
-- works fine
SELECT case when len(code_a)=0 then '00' else code_a end as code_a FROM test;
--> code_a returns 00 as expected.
到目前为止,我不知道为什么 coalesce 不能工作。任何意见,将不胜感激。 谢谢。
''
和 NULL
之间存在差异——我应该注意这是 预期的。
您可以通过以下两种方式之一解决此问题:
coalese(nullif(code_a, ''), '00')
或使用 case
表达式:
(case when code_a <> '' then code_a else '00' end)