[SQL] XML의 PATH ( ''), 1,1)에 대한 SELECT의 의미는 ... 무엇입니까?
SQLXML의 PATH ( ''), 1,1)에 대한 SELECT의 의미는 ... 무엇입니까?
내가 질문 중 하나는 SQL이의 나는 여기 톱 사용법을 배우고, 어떤 몸은 내가 XML 경로 ( '') SQL에서 무엇을 의미하는지 이해 할 수 있습니까? 그래, 내가 웹 페이지를 탐색 꽤 잘 이해하지 못했다!
나는 뒤에 물건을받지하고,이 코드 조각을 수행 지금 무엇? (만 선택 부분)
declare @t table
(
Id int,
Name varchar(10)
)
insert into @t
select 1,'a' union all
select 1,'b' union all
select 2,'c' union all
select 2,'d'
select ID,
stuff(
(
select ','+ [Name] from @t where Id = t.Id for XML path('')
),1,1,'')
from (select distinct ID from @t )t
해결법
-
==============================
1.여기 배울 수있는 실제적인 방법은 없습니다. 그것은 하나의 문자열로 데이터의 여러 행을 연결하는 단지 귀여운 트릭이다. 그것은 XML 포맷 기능의 사용 목적보다는 기능을 더 기발한 사용합니다.
여기 배울 수있는 실제적인 방법은 없습니다. 그것은 하나의 문자열로 데이터의 여러 행을 연결하는 단지 귀여운 트릭이다. 그것은 XML 포맷 기능의 사용 목적보다는 기능을 더 기발한 사용합니다.
SELECT ',' + ColumnName ... FOR XML PATH('')
콤마 세트 ColumnName 열에있는 데이터의 복수의 열을 조합에 기초하여, 값이 분리 생성한다. 그것은, ABC, DEF, GHI, JKL 같은 값을 생성합니다.
STUFF(...,1,1,'')
다음 이전 트릭을 생성하는 주요 쉼표를 제거하는 데 사용됩니다, 매개 변수에 대한 자세한 내용은 다도를 참조하십시오.
(이상하게 많은 사람들이 쉼표가 STUFF 만 트리밍의 최종 비트에 대한 책임이 있음에도 불구하고 "스터프 방법"로 분리 된 값 세트 생성 방법이 참조하는 경향)
-
==============================
2.SQL 당신은 MSSQL에서 문자열 연결에 사용되는 참조되었다.
SQL 당신은 MSSQL에서 문자열 연결에 사용되는 참조되었다.
이 결과에 대한 XML로 사용 앞에 붙이는 행을 연결 A, B, C, D. 그런 다음, 따라서 그것을 제거, 그것은을 위해 먼저 대체 재료를 사용하여.
제 ( '') XML 경로 래퍼 노드를 제거하기 위해 사용되는에 자동으로 생성되고있다. 그렇지 않으면 <행> A, B, C, D 로우>과 같을 것이다.
... stuff( ( select ',' + CAST(t2.Value as varchar(10)) from #t t2 where t1.id = t2.id for xml path('') ) ,1,1,'') as Value ...
from https://stackoverflow.com/questions/21623593/what-is-the-meaning-of-select-for-xml-path-1-1 by cc-by-sa and MIT license
'SQL' 카테고리의 다른 글
[SQL] 어떻게 엑셀 2005 개 데이터를 전송하거나 수출 SQL 서버 않습니다 (0) | 2020.06.02 |
---|---|
[SQL] 하나 개의 테이블에서 어디하지 다른의 선택 (0) | 2020.06.02 |
[SQL] 어떻게 SQL Server 인스턴스에 대한 데이터 디렉터리를 찾을 수 있습니까? (0) | 2020.06.02 |
[SQL] SQL 쿼리하지 다른 테이블에 ID와 기록을 찾을 수 (0) | 2020.06.02 |
[SQL] MySQL은 부울 값 부울 VS TINYINT (1) (0) | 2020.06.02 |