У меня есть значения, которые в конце имеют числовые и отрицательные и отрицательные знаки. Требуется выражение для форматирования отрицательного знака от конца до начала числовых значений
для ex:
значений:
22.50
-22.60
22.90-
23.46-
24.50-
Я хочу, чтобы выход как
22.50
-22.60
-22.90
-23.46
-24.50
Предполагая, что значение является строкой, тогда:
select (case when val like '%-' then '-' + replace(val, '-', '')
else val
end)
Если значение хранится как число, то приложение добавляет знак минуса в конец. Вы можете преобразовать в строку в базе данных, что-то вроде cast(val as varchar(255)). Сначала база данных должна помещать отрицательный знак.
Я думаю, что OP нуждается в решении SSIS:
Использовать производный столбец с if if else else (test? true: false)
right(val,1) = "-" ? (DT_NUMERIC,10,5) ("-" + left(val,len(val)-1)) : (DT_NUMERIC,10,5) val
Это предполагает, что val считывается изначально как строка.
Следующий запрос предполагает следующее:
вы хотите insert into a table, названный DestinationTable DestinationTable, для простоты ваш единственный column, называемый destinationColumn значения хранятся в SourceTable.sourceColumn, ни один из них не является null s, пустые строки или не числовые значенияinsert into DestinationTable(destinationColumn) select case when right(sourceColumn, 1) = '-' then concat('-', substring(sourceColumn, 1, length(sourceColumn) - 1)) else sourceColumn end from SourceTable;