[英]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.