【发布时间】:2018-10-04 00:09:06
【问题描述】:
Quantity 列不能更改,它应该是decimal(18,5),旧的 SSIS 包实际上会使用 VB 代码来执行此操作
Dim q As Decimal
q = Convert.ToDecimal(currentRow(16))
但是,我正在简化将平面文件导入新临时表的过程
插入到数据库临时表中的值被插入为varchar(40)。
其中一个值的示例:
0000000191185.18200-
我想在 SQL Server 查询中将其即时转换为 decimal(18,5) 值,以便将其插入到另一个最终表中。
准确地说从varchar 到decimal(18,5) 的转换应该产生-191185.18200 的值吗?
我正在尝试对此进行测试,但在 T-SQL 中出现错误
select CAST(Quantity AS DECIMAL(18, 5))
from [DST].[DstPositionsStagingT]
错误是
将数据类型 varchar 转换为数值时出错。
Quantity 是表中保存值的列。我做错了什么?
【问题讨论】:
-
我不知道有任何标准将尾随
-识别为“负面”。听起来你有一个数据质量问题,源于现有流程将数值存储为字符串的事实......任何解决方案都需要在处理数据之前更正数据(例如下面的答案去掉了尾随-(如果存在)。) -
这家投资3万亿美元的金融巨头用大型机很常见
标签: sql sql-server tsql sql-server-2008