Ошибка преобразования при преобразовании значения varchar «%» в тип данных int SQL - PullRequest
0 голосов
/ 22 февраля 2019

a.taxamount находится между 0.0 и 20.0, и я хотел бы отобразить его как 0.0% или 120.0%, но я получаю ошибку преобразования.

SELECT....
,(a.taxamount * 100) + '%' AS TaxAmount

Ответы [ 2 ]

0 голосов
/ 22 февраля 2019

Попробуйте следующий запрос.

SELECT CAST((a.taxamount * 100) AS VARCHAR(10))+ '%' AS TaxAmount
0 голосов
/ 22 февраля 2019

Оператор + используется как для сложения, так и для объединения.Если вы смешиваете строки и числа, предполагается добавление, и оно пытается неявно преобразовать строку в число.

Поскольку вы работаете в SQL Server 2008, вы должны сначала преобразовать число в varchar перед объединением.

CAST(a.taxamount * 100 AS VARCHAR(10)) + '%'

В более поздних версиях вы можете использовать функцию CONCAT, которая делает это неявно, или использовать FORMAT(a.taxamount, 'P1') для умножения на 100 и добавления символа процента.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...