0

FirstName、MiddleName、LastNameのUserテーブルがあるとします。
このサンプルでは、​​FirstNameのみが必須です。

これらの3つのフィールドを連結し、それらの値がnullでない場合に「、」で区切る最も速い方法は何ですか。

FirstNameのみがnullでない場合、結果として「John」を取得する必要があります。
FirstNameとLastNameのみがnullでない場合、結果として「John、Wayne」が必要になります。
FirstName、MiddleName、LastNameがnullでない場合、結果として「John、M、Wayne」が必要になります。

よろしくお願いします。

4

2 に答える 2

2

多分このようなもの:

FirstName +(CASE WHEN MiddleName IS NULL THEN '' ELSE ','+MiddleName END)
+(CASE WHEN LastName IS NULL THEN '' ELSE ','+LastName END) 
于 2012-04-18T06:28:04.647 に答える
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
于 2012-04-18T07:18:17.293 に答える