6

한 세트의 데이터를 하나의 문자열로 선택하고 싶지만 각 항목을 자체 행에 추가해야합니다 (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를 사용할 필요가 없다고 생각하지만 표준 연결 만 시도해 봤지만 그 중 하나에 넣지는 않습니다. 지금 당장이 함수가 있지만 저장 프로 시저의 일부로 넣을 계획이므로 더 빠릅니다.

답변

7

CHAR(13)+CHAR(10) 생산할 것이다 줄 바꿈, 나는 프로덕션 코드에서 항상이 작업을 수행합니다.

코드가 실행되어 시스템에서 줄 바꿈이 발생합니다. SSMS에서보기를 "Results to Text"로 "Results to Grid"로 전환하면 줄 바꿈이 표시됩니다.

1

삽입 숯 함수를 사용

탭을 CHAR (9)

개행 숯 (10)

캐리지 문자를 리턴 (13)

+1

+1. 이것은 VB에서 문자열 조작의 옛날을 생각 나게합니다 :-) –

관련 문제