当从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>
我需要做出哪些改变才能获得理想的结果?
感谢。
答案 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")