【发布时间】:2017-08-13 17:39:03
【问题描述】:
我通过不同的搜索发现了许多类似的帖子,其中给出了将 XML 转换为表格格式的解决方案。 下面是我附加的单行列的示例数据,也是我到目前为止所做的基本查询。
<DS_systeminfo>
<Systeminfo>
<Property>CurrentLanguage</Property>
<Property_value>en-US</Property_value>
</Systeminfo>
<Systeminfo>
<Property>Manufacturer</Property>
<Property_value>LENOVO</Property_value>
</Systeminfo>
<Systeminfo>
<Property>SerialNumber</Property>
<Property_value>789654</Property_value>
</Systeminfo>
<Systeminfo>
<Property>Caption</Property>
<Property_value>ATTT</Property_value>
</Systeminfo>
<Property>Manufacturer</Property>
<Property_value>LENOVO</Property_value>
</Systeminfo>
<Systeminfo>
<Property>WindowsDirectory</Property>
<Property_value>C:\WINDOWS</Property_value>
</Systeminfo>
query 如下:
SELECT SerialNumber,
Cast(SystemInfoXML AS XML).value('(/DS_systeminfo/Systeminfo/Property)[1]', 'varchar(100)') AS Caption,
Cast(SystemInfoXML AS XML).value('(/DS_systeminfo/Systeminfo/Property_value)[1]', 'varchar(100)') AS Value
FROM TerminalsDetail
这只是获取第一个节点的值,我想在单个查询中动态选择所有节点,可能正在使用cursor。
给出的数据是单行的,我有超过 100 行需要转换为表格格式。
任何好的建议都会有所帮助。
【问题讨论】:
-
你永远不想在 SQL 中使用游标——永远。
标签: sql sql-server xml select transform