Обновление процентов для установки десятичных разрядов в SQL
У меня есть колонка процентов, выраженная следующим образом:
----------
usertxt2
----------
25%
26
NULL
a%
23.00%
23.6578
Мне нужно преобразовать все числа в фиксированный формат xx.xx%, чтобы столбец отображался как
----------
usertxt2
----------
25.00%
26.00%
NULL
NULL
NULL
23.00%
23.66%
До сих пор я пытался сначала удалить функцию LEFT(), чтобы удалить символ%, а затем преобразовать в десятичную систему, используя функцию CAST() и функцию CASE WHEN, чтобы игнорировать пустые нечисловые символы и значения NULL. Как удалить символ% и преобразовать его в числовой, игнорируя при этом пустые и нечисловые символы?
1 ответ
Вот один из методов:
update t
set usertxt2 = cast(try_cast(replace(usertxt2, '%', '') as decimal(5, 2)) as varchar(255)) + '%'
Это использует try_cast()
обнаружить действительные числа.