XQuery - 如何启用sql:variable来保持小数位

时间:2016-06-21 03:44:45

标签: xml xquery

当从XQuery sql:variable函数中检索值时,我试图保留整数的小数位。

示例代码:

PropertyInfo.SetValue()

结果:

DECLARE @variableName DECIMAL(16,2) = 123.00;
SET @XML.modify('replace value of (/Test/SubTest/text())[1] with sql:variable("@variableName")');

期望的结果:

<Test>
     <SubTest> 123 </SubTest>
</Test>

我需要做出哪些改变才能获得理想的结果?

感谢。

2 个答案:

答案 0 :(得分:1)

在使用decimal之前,您需要将nvarchar转换为XQuery

    DECLARE @xml xml = '<Test>A</Test>', @variableName DECIMAL(16,2) = 123.00, @str nvarchar(max)
SET @str = Convert(nvarchar(max), @variableName)
SET @XML.modify('replace value of (/Test/text())[1] with sql:variable("@str")');
SELECT @Xml, @str

答案 1 :(得分:0)

内置函数fn:format-number可帮助您按照自己的方式格式化数字:

format-number(123, "000.00")

给出:

replace value of (/Test/SubTest/text())[1]
with format-number(sql:variable("@variableName"), "000.00")