SELECT 할 때 엔터값 넣기에 대한 질문입니다. 0 1 5,889

by kshap [SQLServer] MSSQL 엔터 ENTER [2016.06.24 14:46:37]


지금 두개의 행의 내용을 하나의 행, 컬럼 안에 출력하고자 아래와 같이 쿼리를 작성하였고

엔터값 CHAR(13) + CHAR(10)을 이용하여 결과가 아래와 같이 나오기를 바랬지만

idx name
1

이순신,

홍길동

실제 결과는 이순신
 , 홍길동
 이렇게 나오게 되더라구요.
STUFF나 FOR XML PATH로 인해 그런거 같은데 어떻게 해야할지 도무지 모르겠네요..
관련 내용 알고계신 분들 답변 부탁드립니다.

CREATE TABLE #Temp (Idx INT, Name NVARCHAR(50)) 
  
INSERT INTO #Temp VALUES (1,'이순신') 
INSERT INTO #Temp VALUES (1,'홍길동') 
  
SELECT  Idx, 
                  STUFF((SELECT ', ' + a1.Name + CHAR(13) + CHAR(10)
                                 FROM #Temp a1
                                 WHERE (a1.Idx = a.Idx)  
                                 FOR XML PATH ('')) ,1,2,'') AS Names
FROM #Temp a
GROUP BY Idx

 

by 마농 [2016.06.24 15:23:57]

XML PATH 과정이 의심된다면?
  XML PATH 안에서는 CHR(13) + CHR(10) 대신 다른 문자로 대체해서 연결하시고
  XML PATH 밖에서 Replace 하는 방식으로 바꿔 보세요.

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입