如何使用 XQuery 获取 INT 的 NULL 值
How to use XQuery to fetch NULL values for 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
上面的清单给了我 0 而不是我期望的 NULL
。我知道我正在使用 Schema Instance
,但它不应该是一个被广泛接受的标准吗?
您可以使用 text()
:
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
我有下面的例子
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
,但它不应该是一个被广泛接受的标准吗?
您可以使用 text()
:
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