странное поведение 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 делает это?

Ответы на вопрос(4)

Ваш ответ на вопрос