Varchar到数字转换

时间:2015-01-05 01:53:59

标签: sql-server-2008-r2

我已使用SSIS将Excel数据加载到表中。

表格结构:

Monthly_Budget

SEQUENCE            INT IDENTITY,
TRANSACTION_DATE    VARCHAR(100),
TRANSACTION_REMARKS VARCHAR(1000),
WITHDRAWL_AMOUNT    VARCHAR(100),
DEPOSIT_AMOUNT      VARCHAR(100),
BALANCE_AMOUNT      VARCHAR(100)

WITHDRAWL_AMOUNT栏中的值:

7,987.00
1,500.00
7,000.00
50.00
NULL
253.00
4,700.00
2,000.00
148.00
2,000.00
64.00
1,081.00
2,000.00
NULL
NULL
7,000.00

现在,我正在尝试运行查询以获取WITHDRWAL_AMOUNT下的值的总和,但是我收到错误:

Error converting data type varchar to numeric.

我的查询:

SELECT SUM(CAST(ISNULL(LTRIM(RTRIM(WITHDRAWL_AMOUNT)),0) AS NUMERIC(6,2))) AS NUM FROM MONTHLY_BUDGET

1 个答案:

答案 0 :(得分:1)

尝试像这样转换它们:

select SUM(CAST(ltrim(rtrim(replace(WITHDRAWL_AMOUNT, ',', ''))) as numeric(6, 2)) )

将值存储在您想要的正确类型中更为可取。但是,我可以理解将外部数据放入临时表,然后使用上述逻辑将数据加载到最终表中。