[SQL] 행에 쉼표로 구분 된 열 값을 변환
SQL행에 쉼표로 구분 된 열 값을 변환
나는 아래와 같이 저장된 데이터가있는 테이블의 샘플을
Id | String
--------------
1 abc,def,ghi
2 jkl,mno,pqr
내가 좋아하는 출력을 필요로 ..
Id | processedrows
--------------
1 abc
1 def
1 ghi
2 jkl
2 mno
2 pqr
어떻게 SQL Server에서 선택 쿼리와 동일한 기능을 수행 할 수 있습니까?
해결법
-
==============================
1.이 시도
이 시도
SELECT A.[id], Split.a.value('.', 'VARCHAR(100)') AS String FROM (SELECT [id], CAST ('<M>' + REPLACE([string], ',', '</M><M>') + '</M>' AS XML) AS String FROM TableA) AS A CROSS APPLY String.nodes ('/M') AS Split(a);
여기 참조
http://www.sqljason.com/2010/05/converting-single-comma-separated-row.html
-
==============================
2.
SELECT EmployeeID, LTRIM(RTRIM(m.n.value('.[1]','varchar(8000)'))) AS Certs FROM ( SELECT EmployeeID,CAST('<XMLRoot><RowData>' + REPLACE(Certs,',','</RowData><RowData>') + '</RowData></XMLRoot>' AS XML) AS x FROM @t )t CROSS APPLY x.nodes('/XMLRoot/RowData')m(n)
-
==============================
3.이와 함께하십시오. 당신은 당신의 출력을 얻을 것이다.
이와 함께하십시오. 당신은 당신의 출력을 얻을 것이다.
SELECT id, PARSENAME(REPLACE(Split.a.value('.', 'VARCHAR(100)'),'-','.'),1) 'Values' FROM ( SELECT algorithms, CAST ('<M>' + REPLACE(string, ',', '</M><M>') + '</M>' AS XML) AS Data FROM <TableName> ) AS A CROSS APPLY Data.nodes ('/M') AS Split(a)
-
==============================
4.의 스크립트 아래를 해보자 : -
의 스크립트 아래를 해보자 : -
declare @str varchar(max) SELECT @str = isnull(@str +',', '') + a.Value FROM (SELECT Value Entityvalue from Table) a select @str
from https://stackoverflow.com/questions/13873701/convert-comma-separated-column-value-to-rows by cc-by-sa and MIT license
'SQL' 카테고리의 다른 글
[SQL] SQL 서버에서 재귀 쿼리 (0) | 2020.04.04 |
---|---|
[SQL] 피벗 테이블과 연결하여 열 (0) | 2020.04.04 |
[SQL] SQL (ORACLE) : ORDER BY와 LIMIT [중복] (0) | 2020.04.04 |
[SQL] SQL 서버 - 선언 된 변수 절에 [중복] (0) | 2020.04.04 |
[SQL] 왜 절 곳에서 함수, 윈도우를하지? (0) | 2020.04.04 |