sqlserver replace 不能替换空字符串

323 阅读1分钟

本文已参与「新人创作礼」活动,一起开启掘金创作之路。 今天再写sql的时候有一个需求,是将数据库某个字段的空字符串或者null替换一个默认值。我首先想到的是replace和isnull。select  isnull(字段名,'替换的内容') from 表名

select replace(字段名, '', '替换的内容') from 表名.

第一个替换Null是没有问题的,但是你们会发现第二个是有问题的,它不能替换空字符串。此时我们采用case when的写法,既方便,处理起来也简单

select case when 字段名='' then '替换的内容' else 字段名 end from 表名

上面这句话就是将字段名为空的替换成XXX,如果不为空则保留