>데이터 베이스 >MySQL 튜토리얼 >SQL Server에서 쉼표로 구분된 값을 행으로 변환하는 방법은 무엇입니까?

SQL Server에서 쉼표로 구분된 값을 행으로 변환하는 방법은 무엇입니까?

Linda Hamilton
Linda Hamilton원래의
2025-01-03 08:28:39291검색

How to Convert Comma-Separated Values to Rows in SQL Server?

쉼표로 구분된 값을 행 구조의 데이터로 변환

SQL Server에서 데이터가 열 내에 쉼표로 구분된 형식으로 저장되는 경우 , 개별 값을 추출하고 조작하는 것이 어려울 수 있습니다. 이 문서에서는 선택 쿼리를 사용하여 이러한 데이터를 행 구조 형식으로 변환하는 방법을 보여줍니다.

쉼표가 포함된 String이라는 열이 있는 Sample이라는 테이블을 생각해 보세요. 다음과 같은 분리된 값:

Id String
1 abc,def,ghi
2 jkl,mno,pqr

개별 값을 추출하여 행으로 표시하려면 다음을 사용할 수 있습니다. 단계:

  1. String 열을 XML 태그로 묶습니다.

    CAST ('<M>' + REPLACE([string], ',', '</M><M>') + '</M>' AS XML)

    이렇게 하면 각 값이 < 내에 캡슐화되는 XML 조각이 생성됩니다. ;M> 태그.

  2. CROSS APPLY 연산자를 사용하여 계층적 쿼리를 수행합니다.

    CROSS APPLY String.nodes ('/M') AS Split(a)

    이는 XML 조각에 노드 메서드를 교차 적용하여 새로운 태그를 생성합니다. 각 개별 값이 포함된 태그입니다.

  3. Id 열을 Split(a).value('text()') 표현식:

    SELECT A.[id], Split.a.value('.','VARCHAR(100)') AS String
    FROM (SELECT [id], CAST('...AS XML) AS String FROM Sample) AS A
    추출된 값과 ID를 일치시켜 별도로 반환합니다. 행.

결과는 원하는 출력과 유사합니다.

Id ProcessedRows
1 abc
1 def
1 ghi
2 jkl
2 mno
2 pqr
이 기술을 사용하면 쉼표로 구분된 값을 행으로 추출하고 표시할 수 있으므로 효율적인 분석이 가능합니다. 및 데이터 조작.

위 내용은 SQL Server에서 쉼표로 구분된 값을 행으로 변환하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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