2012-04-18 95 views
0

想象一下,您有一個名字爲FirstName,MiddleName,LastName的用戶表。
爲了這個例子只有名字是強制性的。TSQL逗號在同一行上的分隔字段

什麼來連接這3個領域,並將它們與「」當其值不爲空,所以分開的最快方法:

如果只是名字不爲空,我們應該得到‘約翰’的結果。
如果只有名字和姓氏不爲空,我們應該有「John,Wayne」作爲結果。
如果FirstName,MiddleName和LastName不爲null,我們應該有「John,M,Wayne」作爲結果。

謝謝先進。

回答

2

也許是這樣的:

FirstName +(CASE WHEN MiddleName IS NULL THEN '' ELSE ','+MiddleName END) 
+(CASE WHEN LastName IS NULL THEN '' ELSE ','+LastName END) 
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