值我想问一个有关和节点的价值观问题:如果您执行这一点,retrun奇怪的SQL Server的行为时,和节点在XML
Declare @xml xml
set @xml='<Parent ID="p">
<Child ID="1">1000000000</Child >
<Child ID="2">234650</Child >
<Child ID="3">0</Child >
</Parent >'
Select @xml.value('sum(/Parent[@ID="p"]/Child)','bigint') as Sum
:
sum some xml nodes values in sql server 2008
请考虑以下代码这个错误:
Msg 8114, Level 16, State 5, Line 8 Error converting data type nvarchar to bigint.
问题是它返回这个值:1.00023465E9
如果我改变上述查询这种方式即可:
Declare @xml xml
set @xml='<Parent ID="p">
<Child ID="1">1000000000</Child >
<Child ID="2">234650</Child >
<Child ID="3">0</Child >
</Parent >'
Select @xml.value('sum(/Parent[@ID="p"]/Child)','float') as Sum
为什么Sql Server中做到这一点?
为什么一些整数应该在sql server中成为科学数字? – Arian 2013-04-22 11:48:19
这就是您的xpath查询如何从sum()(http://msdn.microsoft.com/zh-cn/library/ms256160.aspx)返回'number'而不是'int'它到SQL Server。 – muhmud 2013-04-22 11:50:25