집 >데이터 베이스 >MySQL 튜토리얼 >SQL Server에서 쉼표로 구분된 값을 행으로 변환하는 방법은 무엇입니까?
쉼표로 구분된 값을 행 구조의 데이터로 변환
SQL Server에서 데이터가 열 내에 쉼표로 구분된 형식으로 저장되는 경우 , 개별 값을 추출하고 조작하는 것이 어려울 수 있습니다. 이 문서에서는 선택 쿼리를 사용하여 이러한 데이터를 행 구조 형식으로 변환하는 방법을 보여줍니다.
쉼표가 포함된 String이라는 열이 있는 Sample이라는 테이블을 생각해 보세요. 다음과 같은 분리된 값:
Id | String |
---|---|
1 | abc,def,ghi |
2 | jkl,mno,pqr |
개별 값을 추출하여 행으로 표시하려면 다음을 사용할 수 있습니다. 단계:
String 열을 XML 태그로 묶습니다.
CAST ('<M>' + REPLACE([string], ',', '</M><M>') + '</M>' AS XML)
이렇게 하면 각 값이 < 내에 캡슐화되는 XML 조각이 생성됩니다. ;M> 태그.
CROSS APPLY 연산자를 사용하여 계층적 쿼리를 수행합니다.
CROSS APPLY String.nodes ('/M') AS Split(a)
이는 XML 조각에 노드 메서드를 교차 적용하여 새로운 태그를 생성합니다. 각
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 중국어 웹사이트의 기타 관련 기사를 참조하세요!