我有一个整合型项目中,我选择列经常有这样的代码替换的东西:SQL Server查询用于检查空字符串并用其它
select
CASE MyColumn
WHEN '' THEN '&'
ELSE MyColumn
END
有没有更简单的方法呢?有点像nulls合并? 我发现查询真的很难阅读等
感谢
我有一个整合型项目中,我选择列经常有这样的代码替换的东西:SQL Server查询用于检查空字符串并用其它
select
CASE MyColumn
WHEN '' THEN '&'
ELSE MyColumn
END
有没有更简单的方法呢?有点像nulls合并? 我发现查询真的很难阅读等
感谢
我想你可以试一下像这样...
COALESCE(NULLIF(MyColumn,''), '&')
这在功能上并不相同......原来的实现会保留一个NULL值,用''&'替换NULL。 –
斑斑斑斑,ops @Vishal和我完全一样的回答:) –
我猜在这种情况下,CASE语句应该可以做这个工作。 –
从@迈克尔Fredrickson的评论继
NULLIF(COALESCE(NULLIF(COALESCE(MyColumn,'###'),''), '&'),'###')
将###替换为您知道不会出现在字段中的任何值。不知道它比案例陈述更容易阅读。
这应该工作,并保持空值:
SELECT COALESCE(NULLIF(MyColumn, ''), NULLIF(MyColumn + '&', ''), MyColumn)
见 '接受',回答以下。实际上,我不需要保留空值,而最终的主要目标是简化查询,以便在不重复'MyColumn'的情况下阅读更容易。 – Raymond