#sql #sql-server
#sql #sql-сервер
Вопрос:
Мне было предоставлено несколько тысяч записей переменных, таких как приведенная выше. Все они должны состоять из 10 символов, и я предполагаю, что они просто без разбора дополняют их нулями. Как я могу переместить отрицательный знак влево, чтобы 000-575.33
он стал -000575.33
таким?
Комментарии:
1. Если это число, почему бы не сохранить его как числовой тип данных? Кроме того, для какой СУБД это нужно?
2.
-
Всегда ли это четвертый символ или он находится в разных местах в разных записях?3.
'-'||replace(the_column, '-', '')
4. microsoft sql server, varchars, отрицательный знак может быть где угодно или отсутствовать вообще (как и в некоторых совершенно хороших).
5. Все ли они должны иметь
-
префикс? Или те, у кого нет-
, не нужны?
Ответ №1:
Должно быть сделано что-то вроде этого. Если они еще не заполнены правильно, сообщите нам об этом, и мы сможем их заполнить.
declare @v varchar(64) = '000-575.33'
select
case
when CHARINDEX('-',@v) > 1 then '-' replace(@v,'-','')
else @v
end