如何使用XQuery获取INT的NULL值

时间:2015-10-15 14:31:34

标签: tsql xquery-sql

我有以下示例

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

上面的列表给了我一个 0 而不是我期望的NULL。我知道我正在使用Schema Instance,但它不应该是一个被广泛接受的标准吗?

1 个答案:

答案 0 :(得分: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