쉼표로 구분된 데이터 열 조인
쉼표로 구분된 데이터 열이 포함된 두 테이블을 조인하려면 다음을 고려하세요. 접근 방식:
정규화
각 값에 대한 열이 있는 별도의 테이블을 생성하여 쉼표로 구분된 값이 포함된 테이블을 정규화합니다. 이렇게 하면 쿼리가 단순화되고 복잡한 문자열 조작이 방지됩니다.
분할 함수 생성
쉼표로 구분된 문자열을 개별 행으로 변환하는 분할 함수를 생성합니다. 이를 통해 행에 대한 조인을 수행할 수 있습니다.
FOR XML PATH 및 STUFF 사용
FOR XML PATH를 사용하여 값을 쉼표로 구분된 문자열 및 STUFF로 연결합니다. 앞에 있는 쉼표를 제거하세요.
직접 FOR XML 신청 PATH
FOR XML PATH를 데이터에 직접 적용하여 원하는 출력을 생성합니다.
예
분할 함수 연결
;with cte as ( select c.col1, t1.col2 from t1 inner join ( select t2.col1, i.items col2 from t2 cross apply dbo.split(t2.col2, ',') i ) c on t1.col1 = c.col2 ) select distinct c.col1, STUFF( (SELECT distinct ', ' + c1.col2 FROM cte c1 where c.col1 = c1.col1 FOR XML PATH ('')), 1, 1, '') col2 from cte c
XML PATH 및 STUFF
select col1, ( select ', '+t1.col2 from t1 where ','+t2.col2+',' like '%,'+cast(t1.col1 as varchar(10))+',%' for xml path(''), type ).value('substring(text()[1], 3)', 'varchar(max)') as col2 from t2;
위 내용은 쉼표로 구분된 열이 있는 테이블을 조인하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!