2015-10-15 50 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