从MS SQL Server中的XML类型列中选择多个列
我使用XML列存储数据,这些数据可以具有动态节点和属性,即一个帐户节点可以有N个节点,我希望在单选查询中将这些所有节点检索为多个列,即Col1、Col2、Col3等 我尝试了下面的查询,但它返回垂直行,我希望有水平行。以下是预期产出。第1列,第2列,第n列从MS SQL Server中的XML类型列中选择多个列,sql,sql-server,xml,sql-server-2008,xmltype,Sql,Sql Server,Xml,Sql Server 2008,Xmltype,我使用XML列存储数据,这些数据可以具有动态节点和属性,即一个帐户节点可以有N个节点,我希望在单选查询中将这些所有节点检索为多个列,即Col1、Col2、Col3等 我尝试了下面的查询,但它返回垂直行,我希望有水平行。以下是预期产出。第1列,第2列,第n列 TAX-1 Amount|TAX-2 Amount|TAX-3 Amount...Nth Columns 1232 |4050 |57 样本数据 DECLARE @XML XML SET @XML='<
TAX-1 Amount|TAX-2 Amount|TAX-3 Amount...Nth Columns
1232 |4050 |57
样本数据
DECLARE @XML XML
SET @XML='<Info>
<Demand>
<Tax ID="1">
<Head>1232</Head>
<Int>10</Int>
<OtherFee>5</OtherFee>
</Tax>
<Tax ID="2">
<Head>4050</Head>
<Int>10</Int>
<OtherFee>5</OtherFee>
</Tax>
<Tax ID="3">
<Head>57</Head>
<Int>10</Int>
<OtherFee>5</OtherFee>
</Tax>
</Demand>
<Collection>
<Tax ID="1">
<Head>500</Head>
<Int>10</Int>
<OtherFee>5</OtherFee>
</Tax>
<Tax ID="2">
<Head>800</Head>
<Int>10</Int>
<OtherFee>5</OtherFee>
</Tax>
</Collection>
</Info>'
看
欢迎任何建议或意见
谢谢
Suresh这可以通过使用动态枢轴技术轻松完成。
SELECT T.C.value('Head[1]', 'varchar(max)') as Amount,
T.C.value('@ID', 'varchar(max)') as Head
FROM @XML.nodes('/Info/Demand/Tax') as T(C)