负数值和结尾负号。需要一个表达式来格式化从数字值的结尾到结尾的负号

时间:2018-08-13 11:45:57

标签: sql ssis

我的值结尾处是数字,负号和负号。需要一个表达式来格式化从数字值的结尾到结尾的负号

例如:

值:

22.50
-22.60
22.90-
23.46-
24.50-

我希望输出为

22.50
-22.60
-22.90
-23.46
-24.50

3 个答案:

答案 0 :(得分:2)

假设值是一个字符串,则:

select (case when val like '%-' then '-' + replace(val, '-', '')
             else val
        end)

如果值存储为数字,则应用程序将在末尾添加减号。您可以将其转换为数据库中的字符串,例如cast(val as varchar(255))。数据库应首先放置负号。

答案 1 :(得分:0)

以下查询假定以下内容:

  • 您要insert into称为table的{​​{1}}
  • DestinationTable仅具有一个DestinationTable的{​​{1}},为简单起见
  • 您的值存储在column
  • 它们都不是destinationColumn,空字符串或非数字值

SourceTable.sourceColumn

答案 2 :(得分:0)

我认为OP需要SSIS解决方案:

将派生列与if if else一起使用(测试吗?true:false)

right(val,1) = "-" ? (DT_NUMERIC,10,5) ("-" + left(val,len(val)-1)) : (DT_NUMERIC,10,5) val

这假定val最初是作为字符串读取的。