数据库具有带有3列empID,badgID,XMLDATA的表EMP。如何从表中读取XML属性?
的XMLDATA有数据类型“CLOB”和数据的格式为 -
<Record id="11">
<Demo rID="5"/>
</Record>
我怎么能在单个查询上述XMLDATA读取节点“演示”价值属性“RID”?
服务器 - SQL Server 2005中
数据库具有带有3列empID,badgID,XMLDATA的表EMP。如何从表中读取XML属性?
的XMLDATA有数据类型“CLOB”和数据的格式为 -
<Record id="11">
<Demo rID="5"/>
</Record>
我怎么能在单个查询上述XMLDATA读取节点“演示”价值属性“RID”?
服务器 - SQL Server 2005中
如果您有存储与数据类型的XML在SQL Server的数据,那么你可以这样做:
SELECT
empID, badgID,
XmlData.value('(/Record/Demo/@rID)[1]', 'int') as 'rID'
FROM
dbo.YourTable
如果你的数据类型是不 XML - 实际上它应该!您可能需要使用这样的事情(可能并非在所有情况下工作):如果您发布的代码或XML
SELECT
empID, badgID,
(CAST XmlData AS XML).value('(/Record/Demo/@rID)[1]', 'int') as 'rID'
FROM
dbo.YourTable
谢谢。 我试过这两个查询,它失败并且说“模式XMLDATA不存在”。 但是XMLDATA列存在于表中。 – indigenious 2010-08-19 07:44:33
@indigenious:你能告诉我们实际的表格结构吗?数据库图表什么的? – 2010-08-19 08:14:26
我的歉意,我只能读取数据库的访问权限,并没有意识到这个架构。 – indigenious 2010-08-20 13:36:55
,** **请在高亮文本编辑器的线,然后点击“代码”按钮(101 010)在编辑器工具栏上进行很好的格式化和语法突出显示! – 2010-08-18 14:13:04
什么是实际的数据类型?就我所知,clob不是SQL Server数据类型。 – 2010-08-18 14:14:06
严重 - 数据类型“CLOB”?据我所知,SQL Server没有 - 我们有'IMAGE,TEXT,NTEXT'(全部过时)或'(N)VARCHAR(MAX)'或'VARBINARY(MAX)'或'XML'所以这是真的吗? – 2010-08-18 14:14:23