SQL 사용자 강좌 - SQLER들이 직접 만들어 나가는 강좌 게시판
구분자관련 질문이 상당히 많더라구요.
여러 방법으로 기술되어 있네요.... 참고하시면 쓸모가 있을듯 합니다.
1) 행값을 구분자로 합하여 열로 표현.

(1) 행값을 구분자로 합하여 열로 표현 하는 거기에서
두번째 쿼리 Adrian Downes 의 쿼리는 ID 3 일때 null 이 나오는데, 잘못된 쿼리가 아닌가여?
sqlleader 에서도 그냥 아무도 말이 없길래~ 여쭤보는거에요. ^
id별 자료가 하나 일때는 null로 나오게 됩니다...
중간 녹색부분에서 null 처리가 되다보니 발생하는것 같은데...
빨간색 부분에서 COALESCE를 이용해서 처리하면 될듯 합니다...
SELECT res.id, MAX(res.[NAME]) AS [NAME]
FROM
(
SELECT c.id,
CASE
WHEN PATINDEX('%' + d.[NAME] + '%', c.[NAME]) = 0 AND c.id = d.id
THEN c.[NAME] + ', ' + d.[NAME]
ELSE COALESCE(c.[NAME] , d.[NAME] )
END AS [NAME]
FROM
(
SELECT a.id, MIN(a.[NAME]) AS [NAME]
FROM
(
SELECT y.id,
CASE
WHEN PATINDEX('%' + z.[NAME] + '%', y.[NAME]) = 0 AND y.id = z.id
THEN y.[NAME] + ', ' + z.[NAME]
END AS [NAME]
FROM t1 y
INNER JOIN t1 z ON y.id = z.id
) a
GROUP BY a.id
) c
INNER JOIN t1 d ON c.id = d.id
) res
GROUP BY res.id
GO

