Я использую SQL Server 2016 и у меня есть следующий код T-SQL в моем запросе:Как исправить этот синтаксис T-SQL, чтобы получить результат без десятичных знаков?
CAST(ROUND([Count of Bookings] * 100.0/SUM([Count of Bookings]) OVER (PARTITION BY [Market Final], [PropertyCode]), 0) AS NVARCHAR(15)) + '%'
Пример выходного тока этого кода: 40,000000000000%
Я ожидал, что выход быть: 40%
Как примечание (я не знаю, если это уместно): если изменить число в nvarchar(x)
к ниже, чем 15, я получаю следующее сообщение об ошибке:
Arithmetic overflow error converting expression to data type nvarchar.
Вы не хотите какой-либо десятичную мест? –
Либо увеличьте размер вашего varchar, либо сначала преобразуйте его в int, чтобы опустить конечные 0. –