목차
SQL Server: STUFF 및 FOR XML PATH를 사용하여 중복 ID 이름 연결
데이터 베이스 MySQL 튜토리얼 'STUFF' 및 'FOR XML PATH'는 중복 ID를 위해 SQL Server에서 이름을 어떻게 연결합니까?

'STUFF' 및 'FOR XML PATH'는 중복 ID를 위해 SQL Server에서 이름을 어떻게 연결합니까?

Jan 22, 2025 pm 10:52 PM

How Do `STUFF` and `FOR XML PATH` Concatenate Names in SQL Server for Duplicate IDs?

SQL Server: STUFF 및 FOR XML PATH를 사용하여 중복 ID 이름 연결

이 가이드에서는 SQL Server 테이블의 중복 ID와 연결된 여러 이름을 연결하여 각 고유 ID에 대해 쉼표로 구분된 이름 목록을 만드는 방법을 보여줍니다. STUFFFOR XML PATH의 강력한 조합을 사용하여 이를 달성하겠습니다.

시나리오:

중복된 ​​ID와 해당 이름이 있는 테이블을 상상해 보세요. 목표는 각 ID의 모든 이름을 쉼표로 깔끔하게 구분하여 포함하는 새 열을 만드는 것입니다.

해결책:

이 솔루션은 3단계 프로세스를 사용합니다.

1단계: 쉼표로 구분된 XML 문자열 생성

솔루션의 핵심은 FOR XML PATH('')을 활용하여 이름에서 쉼표로 구분된 문자열을 생성하는 것입니다.

1

2

3

SELECT ',' + name

FROM temp1

FOR XML PATH('')

로그인 후 복사

이렇게 하면 각 이름 앞에 쉼표가 오는 XML 문자열이 생성됩니다.

2단계: 선행 쉼표 제거

1단계의 결과 XML 문자열은 불필요한 쉼표로 시작됩니다. STUFF 이를 우아하게 제거합니다.

1

2

3

4

5

6

STUFF(

  (SELECT ',' + name FROM temp1 FOR XML PATH('')),

  1,

  1,

  ''

)

로그인 후 복사

STUFF은 첫 번째 문자(선두 쉼표)를 빈 문자열로 바꿉니다.

3단계: 가입, 그룹화, 최종 결과

마지막으로 위의 단계를 JOINGROUP BY 절과 결합하여 원하는 결과를 얻습니다.

1

2

3

4

5

6

7

8

9

SELECT ID,

  ConcatenatedNames = STUFF(

    (SELECT ',' + name

    FROM temp1 t1

    WHERE t1.id = t2.id

    FOR XML PATH (''))

  , 1, 1, '')

FROM temp1 t2

GROUP BY id;

로그인 후 복사

이 쿼리는 temp1을 기반으로 원본 테이블(ID)과 하위 쿼리(쉼표로 구분된 문자열을 생성함)를 조인합니다. GROUP BY 절은 각 고유 ID에 대해 연결이 발생하도록 보장합니다. 결과 ConcatenatedNames 열에는 각 ID에 대한 쉼표로 구분된 이름 목록이 포함됩니다.

위 내용은 'STUFF' 및 'FOR XML PATH'는 중복 ID를 위해 SQL Server에서 이름을 어떻게 연결합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

뜨거운 기사 태그

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

Docker에서 MySQL 메모리 사용을 줄입니다 Docker에서 MySQL 메모리 사용을 줄입니다 Mar 04, 2025 pm 03:52 PM

Docker에서 MySQL 메모리 사용을 줄입니다

Alter Table 문을 사용하여 MySQL에서 테이블을 어떻게 변경합니까? Alter Table 문을 사용하여 MySQL에서 테이블을 어떻게 변경합니까? Mar 19, 2025 pm 03:51 PM

Alter Table 문을 사용하여 MySQL에서 테이블을 어떻게 변경합니까?

MySQL의 문제를 해결하는 방법 공유 라이브러리를 열 수 없습니다. MySQL의 문제를 해결하는 방법 공유 라이브러리를 열 수 없습니다. Mar 04, 2025 pm 04:01 PM

MySQL의 문제를 해결하는 방법 공유 라이브러리를 열 수 없습니다.

sqlite 란 무엇입니까? 포괄적 인 개요 sqlite 란 무엇입니까? 포괄적 인 개요 Mar 04, 2025 pm 03:55 PM

sqlite 란 무엇입니까? 포괄적 인 개요

Linux에서 MySQL을 실행합니다 (Phpmyadmin이있는 Podman 컨테이너가 포함되지 않음) Linux에서 MySQL을 실행합니다 (Phpmyadmin이있는 Podman 컨테이너가 포함되지 않음) Mar 04, 2025 pm 03:54 PM

Linux에서 MySQL을 실행합니다 (Phpmyadmin이있는 Podman 컨테이너가 포함되지 않음)

MacOS에서 여러 MySQL 버전을 실행 : 단계별 가이드 MacOS에서 여러 MySQL 버전을 실행 : 단계별 가이드 Mar 04, 2025 pm 03:49 PM

MacOS에서 여러 MySQL 버전을 실행 : 단계별 가이드

인기있는 MySQL GUI 도구는 무엇입니까 (예 : MySQL Workbench, Phpmyadmin)? 인기있는 MySQL GUI 도구는 무엇입니까 (예 : MySQL Workbench, Phpmyadmin)? Mar 21, 2025 pm 06:28 PM

인기있는 MySQL GUI 도구는 무엇입니까 (예 : MySQL Workbench, Phpmyadmin)?

일반적인 취약점 (SQL 주입, 무차별 적 공격)에 대해 MySQL을 어떻게 보호합니까? 일반적인 취약점 (SQL 주입, 무차별 적 공격)에 대해 MySQL을 어떻게 보호합니까? Mar 18, 2025 pm 12:00 PM

일반적인 취약점 (SQL 주입, 무차별 적 공격)에 대해 MySQL을 어떻게 보호합니까?

See all articles