2012-04-18 11 views
0

FirstName、MiddleName、LastNameのUserテーブルがあるとします。
このサンプルでは、​​FirstNameのみが必須です。TSQLカンマで区切られた同じ行のフィールド

これらの3つのフィールドを連結し、その値はそう、NULLでないとき「」で区切るための最速の方法は何です:

のみのFirstNameがNULLでない場合、我々は結果として 『ジョン』を取得する必要があります。
FirstNameとLastNameだけがnullでない場合、結果として「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 
関連する問題