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的参数