2015-10-15 31 views
2

取空值我已经在下例中如何使用XQuery为INT

DECLARE @MyXml XML 

SET @MyXml = CONVERT(XML, '<?xml version="1.0" ?> 
          <root xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> 
           <number xsi:nil="true" /> 
          </root>') 

SELECT @MyXml.value('(/root/number)[1]', 'INT') AS MyNumber 

上述清单给我,而不是一个NULL,我期望的那样。我知道我正在使用Schema Instance,但是它不应该是一个被广泛接受的标准吗?

回答

1

您可以使用text()

LiveDemo

DECLARE @MyXml XML 

SET @MyXml = CONVERT(XML, 
    '<?xml version="1.0" ?> 
    <root xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> 
     <number xsi:nil="true" /> 
    </root>') 

SELECT @MyXml.value('(/root/number/text())[1]', 'INT') AS MyNumber