如何从TABLE中读取XML属性?

时间:2010-08-18 14:09:22

标签: xml sql-server-2005

数据库具有表EMP,其中包含3列empID,badgID,XMLDATA。

XMLDATA的数据类型为“clob”,数据的格式为 -

<Record id="11">
    <Demo rID="5"/>
</Record>

如何在单个查询中读取上述XMLDATA中节点“Demo”值中的属性“rID”?

服务器 - SQL Server 2005

1 个答案:

答案 0 :(得分:2)

如果在SQL Server中使用数据类型XML存储数据,则可以执行以下操作:

SELECT 
    empID, badgID,
    XmlData.value('(/Record/Demo/@rID)[1]', 'int') as 'rID'
FROM 
    dbo.YourTable

如果您的数据类型是不是 XML - 它确实应该是!您可能需要使用类似的东西(可能在所有情况下都不起作用):

SELECT 
    empID, badgID,
    (CAST XmlData AS XML).value('(/Record/Demo/@rID)[1]', 'int') as 'rID'
FROM 
    dbo.YourTable