2012-04-18 2 views
0

Представьте, что у вас есть таблица пользователей с именем FirstName, MiddleName, LastName.
Для этого образца только FirstName является обязательным.TSQL Заблокированные поля в той же строке

Какой самый быстрый способ объединить эти 3 поля и разделите их с «» когда их значение не равно нулю, так:

Если только FirstName не равно нулю, мы должны получить „Джон“ в качестве результата.
Если только FirstName и LastName не являются нулевыми, мы должны получить результат «John, Wayne».
Если FirstName, MiddleName и LastName не являются нулевыми, мы должны получить результат «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 
Смежные вопросы