2014-10-24 3 views

ответ

2

Если столбец уже тип данных XML в SQL Server, то ниже код должен работать используя функцию значений с XPATH. Если он хранится как varchar, вам просто нужно заменить 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 

Урожайность OUTPUT

IsRssFeed 
--------- 
0 
3

Использование 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; 
Смежные вопросы