TSQL : 중첩 된 문서를 얻으려면 XML에서 자체 결합을하는 방법은 무엇입니까?

StackOverflow https://stackoverflow.com/questions/160374

문제

다음과 같은 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')
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top