【发布时间】:2014-04-17 15:20:56
【问题描述】:
表MTEL 有700 万行。 [TRANSACTION_AMT] 列是 varchar,有些值是数字,而有些值是空格,有些是 'NA'。由于我在 [TRANSACTION_AMT] 列上返回绝对总和,因此我使用了以下查询 -
select
e.[ ACCOUNT_NUM] as acct_num
,'MTL' as src
,case
when isnumeric([TRANSACTION_AMT]) = 1 then SUM(ABS([TRANSACTION_AMT]))
when [TRANSACTION_AMT] = 'NA' then SUM(ABS(REPLACE([TRANSACTION_AMT],'NA','0')))
when [TRANSACTION_AMT] = '' then SUM(ABS(REPLACE([TRANSACTION_AMT], '', '0')))
end as abs_total_txn_amt
from
mtb..MTEL e (nolock)
group by
e.[ACCOUNT_NUM], e.[TRANSACTION_AMT]
以上查询抛出错误
将数据类型 varchar 转换为 float 时出错。
返回 440 万条记录后。
我可以在我的代码中进行哪些更改以消除错误?我正在使用 SQL Server。
【问题讨论】:
标签: sql sql-server group-by sum na