Как и во многих языках, знак плюс является перегруженным оператором в T-SQL - сложение или конкатенация строк.Когда какой-либо из типов, участвующих в операции, является числовым, приоритет идет на сложение.Конечно, вы не можете добавлять строки и числа осмысленным образом, поэтому вы получаете сообщение об ошибке преобразования.Чтобы объединить значения в виде строк, вы должны сообщить SQL Server, что все они являются строками.Один из способов сделать это - использовать CONVERT
:
..., '$' + CONVERT(VARCHAR(12), SUM(CAST(price AS INT))) AS Price FROM ...
. Обратите внимание, что в Denali вы сможете избежать преобразований, используя новую функцию CONCAT
, которая обрабатывает всевводит как строки и даже обрабатывает значения NULL
как пустые строки.