将XML数据转换为SQL Server表
针对涉及XML的数据管理场景,将其转换为结构化表格格式进行分析处理可能是必要的。使用 SQL Server 中的 Transact-SQL (TSQL) 可以有效地完成此任务。
XML 到表转换
将 XML 数据转换为表的过程涉及三个过程方法:
示例
考虑以下 XML data:
<row> <IdInvernadero>8</IdInvernadero> <IdProducto>3</IdProducto> <IdCaracteristica1>8</IdCaracteristica1> <IdCaracteristica2>8</IdCaracteristica2> <Cantidad>25</Cantidad> <Folio>4568457</Folio> </row> <row> <IdInvernadero>3</IdInvernadero> <IdProducto>3</IdProducto> <IdCaracteristica1>1</IdCaracteristica1> <IdCaracteristica2>2</IdCaracteristica2> <Cantidad>72</Cantidad> <Folio>4568457</Folio> </row>
应用 FOR XML PATH 方法,以下代码将此 XML 转换为表:
DECLARE @xml XML = '<root> <row> <IdInvernadero>8</IdInvernadero> <IdProducto>3</IdProducto> <IdCaracteristica1>8</IdCaracteristica1> <IdCaracteristica2>8</IdCaracteristica2> <Cantidad>25</Cantidad> <Folio>4568457</Folio> </row> <row> <IdInvernadero>3</IdInvernadero> <IdProducto>3</IdProducto> <IdCaracteristica1>1</IdCaracteristica1> <IdCaracteristica2>2</IdCaracteristica2> <Cantidad>72</Cantidad> <Folio>4568457</Folio> </row> </root>'; SELECT IdInvernadero, IdProducto, IdCaracteristica1, IdCaracteristica2, Cantidad, Folio FROM @xml.nodes('//row') AS tbl(row) CROSS APPLY tbl.row.query('./@*') AS col(name, value);
生成的表:
IdInvernadero IdProducto IdCaracteristica1 IdCaracteristica2 Cantidad Folio ---------- ---------- --------------- --------------- ------- ------ 8 3 8 8 25 4568457 3 3 1 2 72 4568457
通过利用 TSQL,您可以有效地将 XML 数据转换为结构化表,从而实现数据分析、操作和报告任务。
以上是如何使用 Transact-SQL 高效地将 XML 数据转换为 SQL Server 表?的详细内容。更多信息请关注PHP中文网其他相关文章!