2012-04-18 6 views
0

이름, 성, 성으로 User 테이블이 있다고 가정 해보십시오.
이 샘플에서는 이름은 필수 항목입니다. 결과 만 FIRSTNAME가 null가 아닌 경우TSQL 같은 행에 쉼표로 구분 된 필드

, 우리가 가야 "존"

이 3 개 필드을 연결하고 그 값이 NOT NULL, 그래서 때 ","로 구분하는 가장 빠른 방법은 무엇입니까.
FirstName과 LastName만이 null이 아니면 우리는 "John, Wayne"을 결과로 가져야합니다.
성, 중간 이름 및 성이 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