内NULL和空字符串我有可以有NULL
或空的空间(即''
)值的列。我想用'UNKNOWN'
这样的有效值替换这两个值。我发现的各种解决方案都建议修改表格本身的值。但是,在这种情况下,这不是一个选项,因为数据库是针对开发和/或打补丁的第三方应用程序很差的(实际上我认为我的罗威纳可以做得更好)。我担心修改基础数据可能会导致应用程序陷入吸烟漏洞。更换Select语句
我已经尝试下面的命令的变化:
COALESCE(Address.COUNTRY, 'United States') -- Won't replace empty string as it is not NULL
REPLACE(Address.COUNTRY, '', 'United States') -- Doesn't replace empty string
ISNULL(Address.COUNTRY, 'United States') -- Works for NULL but not empty string
我知道我可以使用CASE
声明,但我希望有是一个更优雅/有效的解决方案。
你得相信我,当我说我已经找了一个解决我的具体问题,并没有找到答案。但是,如果我忽略了某些东西,请向我展示点亮的路径。
这似乎已经做到了。啤酒对我来说。然而,我很惊讶,它的工作原理在于我的理解是COALESCE函数将获取第一个非空值。在声明中,我希望它会返回空格而不是文本字符串?但是,底线,感谢您的解决方案。 – mbadtk
这个语句中有两个函数,一个是NULLIF,它将空字符串转换为空,然后是'coalesce',用于检查空 –
@rs:注意:nullif不会将空字符串转换为空,它会返回如果两个参数相同,则为null;)。 –