한 세트의 데이터를 하나의 문자열로 선택하고 싶지만 각 항목을 자체 행에 추가해야합니다 (Crystal Reports에 넣으므로 많은 수의 하위 리포트를 사용하는 것보다 빠릅니다)SQL Server - 문자열을 병합하고 줄 바꿈을 추가하는 방법?
그래서, 다음과 같은 데이터가 있습니다
ID Assessor
1 Black
1 Jones
을하고 나는 그것을 쿼리 및처럼 보이는 하나의 문자열 반환 할 :
Black
Jones
내가 유착 사용하여 선택을 할 경우를, 나는 할 수있다 세미콜론은 쉼표 또는 세미콜론으로 구분되지만 줄 바꿈은 구분되지 않습니다.
BEGIN
declare @Assessors NVarChar(max)
Declare @LineFeed varchar(10)
DECLARE @Return varchar(10)
Set @LineFeed = char(10)
SET @Return = char(13)
Select @Assessors = COALESCE(@Assessors + ', ', '') + a.Assessor
FROM dbo.Assessment a
Where (@ID = a.ID)
Return @Assessors
END
에서이 함수는 'Black, Jones'를 반환합니다. 그것이 라인 피드 또는 반환, 단지 공간에 넣어하지 않습니다 - 나는
Select @Assessors = COALESCE(@Assessors + @Return + @LineFeed, '') + a.Assessor
에 줄을 변경한다면 그것은 '블랙 존스'를 반환합니다.
나는 Coalesce를 사용할 필요가 없다고 생각하지만 표준 연결 만 시도해 봤지만 그 중 하나에 넣지는 않습니다. 지금 당장이 함수가 있지만 저장 프로 시저의 일부로 넣을 계획이므로 더 빠릅니다.
+1. 이것은 VB에서 문자열 조작의 옛날을 생각 나게합니다 :-) –