Обновление процентов для установки десятичных разрядов в 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() обнаружить действительные числа.

Другие вопросы по тегам