странное поведение SQL Server при суммировании значений узлов в XML
Я задаю вопрос о сумме узлаs значения:
суммировать некоторые значения узлов XML в SQL Server 2008
Пожалуйста, рассмотрите этот код:
Declare @xml xml
set @xml='
1000000000
234650
0
'
Select @xml.value('sum(/Parent[@ID="p"]/Child)','bigint') as Sum
если вы выполните это, то снова запустите эту ошибку:
Сообщение 8114, уровень 16, состояние 5, строка 8 Ошибка преобразования типа данных nvarchar в bigint.
проблема в том, что он возвращает это значение:1.00023465E9
если я изменю приведенный выше запрос таким образом, все будет в порядке:
Declare @xml xml
set @xml='
1000000000
234650
0
'
Select @xml.value('sum(/Parent[@ID="p"]/Child)','float') as Sum
Почему Sql Server делает это?