Проблема в ваших данных, потому что, имея для решения символ «%», удалите их с помощью функции замены.
SELECT CONVERT(varchar(255),REPLACE([Discount], '%', '')) + '%' AS [Discount]
FROM [RDMS_DEV].[dbo].[t_TNSDiscount_dtl]
Вы также можете добавить CONVERT (десятичное число (10,3), [Скидка]), чтобы ввести 3 десятичных знака.
Новый ответ при изменении вопроса: поэтому для обновления каждый раз, когда данные больше и равны 10, я объединяю символ «%».
SELECT CASE WHEN CONVERT(decimal,REPLACE([Discount], '%', '')) < 10 THEN CONVERT(varchar(255),REPLACE([Discount], '%', '')) ELSE
CONVERT(varchar(255),REPLACE([Discount], '%', '')) + '%' END AS [Discount]
FROM [RDMS_DEV].[dbo].[t_TNSDiscount_dtl]
Результат вывода для обновленного вопроса: