TSQL : 중첩 된 문서를 얻으려면 XML에서 자체 결합을하는 방법은 무엇입니까?
-
03-07-2019 - |
문제
다음과 같은 SQL Server 2005 테이블이 있습니다.
create table Taxonomy(
CategoryId integer primary key,
ParentCategoryId integer references Taxonomy(CategoryId),
CategoryDescription varchar(50)
)
데이터가 보입니다
CategoryIdParentCategoryIdCategoryDescription
123nullfoo345123bar
다음과 같은 XML 문서로 쿼리하고 싶습니다.
<taxonomy>
<category categoryid="123" categorydescription="foo">
<category id="455" categorydescription="bar"/>
</category>
</taxonomy>
XML Auto, Elements 에서이 작업을 수행 할 수 있습니까? 아니면 XML Explicit에 사용해야합니까?
해결책
가능하지만 주된 제한은 계층의 수준이 하드 코딩되어야한다는 것입니다. SQL Server Books Online에는 XML에서 계층을 나타내는 방법에 대한 설명이 있습니다. 이 링크. 아래는 요청한 XML을 생성하는 샘플 쿼리입니다.
SELECT [CategoryId] as "@CategoryID"
,[CategoryDescription] as "@CategoryDescription"
,(SELECT [CategoryId]
,[CategoryDescription]
FROM [dbo].[Taxonomy] "Category"
WHERE ParentCategoryId = rootQuery.CategoryId
FOR XML AUTO, TYPE)
FROM [dbo].[Taxonomy] as rootQuery
where [ParentCategoryId] is null
FOR XML PATH('Category'), ROOT('Taxonomy')
제휴하지 않습니다 StackOverflow