Sql 字符串操作类COALESCE

时间:2021-01-09 06:49:31

SqlServer中肯定有过将表中某列的值拼接成字符串,以","或者其他符号隔开的情况吧,一般情况我们会这样做:

declare @returnValue nvarchar(max)='';

select @returnValue+=','+Col1 from Table1 where ....

set @returnValue=substring(@returnValue,1,len(@returnValue)-1) --去掉最前面的,

然后再将@returnValue变量的值截取,这样操作其实感觉很麻烦 再看看利用sqlserver提供的内部方法实现:

declare @returnValue nvarchar(max)=''

select @returnValue=coalesce(@returnValue+','+Col1,Col1) from Table1 where ....

个人更喜欢后面那种方式,略简单些:

coalesce(ex1,ex2,ex3...):此方法返回参数中第一个不为null的参数