[英]Easiest way to query a SQL Server 2008 R2 XML data type?
我需要在XML数据类型列中获取节点值。
<CustomContentData>
<prpIsRSSFeed>false</prpIsRSSFeed>
</CustomContentData>
在SQL Server中如何完成?
列名称为ClassXML
使用XQuery ,关于数据的简单示例是:
DECLARE @T TABLE (ClassXML XML);
INSERT @T (ClassXML)
VALUES ('<CustomContentData>
<prpIsRSSFeed>false</prpIsRSSFeed>
</CustomContentData>');
SELECT t.ClassXML.value('CustomContentData[1]/prpIsRSSFeed[1]', 'VARCHAR(5)')
FROM @T AS t;
如果该列已经是SQL Server中的XML数据类型,则下面的代码应通过将值函数与XPATH一起使用来工作。 如果将其存储为varchar,则只需用CONVERT(XML, ClassXML).value
替换ClassXML.value
CONVERT(XML, ClassXML).value
。 希望这可以帮助!
DECLARE @Data TABLE (ClassXML XML)
INSERT @Data VALUES ('<CustomContentData><prpIsRSSFeed>false</prpIsRSSFeed></CustomContentData>')
SELECT
CONVERT(BIT, CASE WHEN ClassXML.value ('(/CustomContentData/prpIsRSSFeed)[1]',
'VARCHAR(50)') = 'true' THEN 1 ELSE 0 END) AS IsRssFeed
FROM @Data
产量输出
IsRssFeed
---------
0
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.