簡體   English   中英

查詢SQL Server 2008 R2 XML數據類型的最簡單方法?

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM