Измените условно отформатированные числа на десятичные (30,2) на сервере sql - PullRequest
0 голосов
/ 07 января 2020

Как изменить (30,45,123.12) на -3045123.12 в SQL Сервере, прежде чем вставить в таблицу? При преобразовании данных возникла проблема.

SELECT CASE 
        WHEN Try_Convert(BIGINT, replace(nullif([numbersvalue], ''), ',', '')) IS NOT NULL
            THEN CONVERT(BIGINT, replace(nullif([numbersvalue], ''), ',', ''))
        ELSE 0
        END
FROM tables

1 Ответ

0 голосов
/ 07 января 2020

Вы можете использовать try_convert(money, ... ) Это имеет тенденцию быть немного более прощающим

Пример

Select try_convert(money,replace(replace('(30,45,123.12)','(','-'),')',''))

Возвращает

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