想象一下,你有一个带有FirstName,MiddleName,LastName的User表 为了这个样本,只有FirstName是强制性的。
连接这3个字段的最快方法是什么,并在它们的值为非null时用“,”分隔它们,所以:
如果只有FirstName为非null,我们应该得到“John”作为结果 如果只有FirstName和LastName不为null,我们应该将“John,Wayne”作为结果 如果FirstName,MiddleName和LastName不为null,我们应该将“John,M,Wayne”作为结果。
先谢谢。
答案 0 :(得分:2)
也许是这样的:
FirstName +(CASE WHEN MiddleName IS NULL THEN '' ELSE ','+MiddleName END)
+(CASE WHEN LastName IS NULL THEN '' ELSE ','+LastName END)
答案 1 :(得分:0)
2种不同的方法
--syntax
select Firstname + isnull(',' +Middlename, '') + coalesce(',' +LastName, '')
from
--testdata
(select 'John' firstname, 'W' middlename, 'Wayne' lastname
union all select 'John' firstname, null middlename, 'Wayne' lastname
union all select 'John' firstname, 'W' middlename, null lastname) a