> 데이터 베이스 > MySQL 튜토리얼 > T-SQL에서 여러 행을 단일 열로 연결하는 방법은 무엇입니까?

T-SQL에서 여러 행을 단일 열로 연결하는 방법은 무엇입니까?

DDD
풀어 주다: 2025-01-12 09:07:46
원래의
1012명이 탐색했습니다.

How to Concatenate Multiple Rows into a Single Column in T-SQL?

T-SQL을 사용하여 여러 값을 단일 열로 반환

단일 속성에 대해 여러 값이 포함된 테이블을 처리할 때 효율적인 데이터 분석을 위해 이러한 값을 검색하고 단일 열로 병합해야 합니다. 이 기사에서는 함수와 문자열 연산의 조합을 사용하여 열에 여러 값을 반환하는 솔루션을 살펴봅니다.

예:

사용자당 여러 별칭이 있는 "UserAliases" 테이블을 고려해 보세요.

<code>UserId/Alias  
1/MrX  
1/MrY  
1/MrA  
2/Abc  
2/Xyz</code>
로그인 후 복사

목표는 데이터를 다음 형식으로 변환하는 것입니다.

<code>UserId/Alias  
1/ MrX, MrY, MrA  
2/ Abc, Xyz</code>
로그인 후 복사

해결책:

이를 위해 "COALESCE" 기능을 사용하는 사용자 정의 함수 "GetAliasesById"를 사용합니다. 이 함수는 "@output" 변수를 초기화하고 여기에 별칭 값을 쉼표로 구분하여 반복적으로 추가합니다. 다음은 함수 코드입니다:

<code class="language-sql">CREATE FUNCTION [dbo].[GetAliasesById]
(
    @userID int
)
RETURNS varchar(max)
AS
BEGIN
    declare @output varchar(max)
    select @output = COALESCE(@output + ', ', '') + alias
    from UserAliases
    where userid = @userID

    return @output
END</code>
로그인 후 복사

마지막으로 데이터를 검색하고 "GetAliasesById" 함수를 적용하여 별칭을 병합합니다.

<code class="language-sql">SELECT UserID, dbo.GetAliasesByID(UserID)
FROM UserAliases
GROUP BY UserID</code>
로그인 후 복사

이 쿼리는 각 사용자에 대한 여러 별칭을 단일 열로 결합하여 원하는 출력을 반환합니다. "COALESCE" 함수는 null 값을 효율적으로 처리하여 유효한 문자열 출력을 보장합니다.

위 내용은 T-SQL에서 여러 행을 단일 열로 연결하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿