在查询时使用以下 sql 案例时,有没有办法摆脱这个错误?因为某些字段是 varchar,因为它们是导入的?
select * ,
case when [Month] = '200911' then netpay_nov09
when [Month] = '200912' then netpay_dec09
when [Month] = '201001' then netpay_jan10
end as m1
在查询时使用以下 sql 案例时,有没有办法摆脱这个错误?因为某些字段是 varchar,因为它们是导入的?
select * ,
case when [Month] = '200911' then netpay_nov09
when [Month] = '200912' then netpay_dec09
when [Month] = '201001' then netpay_jan10
end as m1
由于这些varchar
列似乎可能包含 REAL 值,因此将它们显式转换为 REAL 并将它们 ROUND,如下所示:
select * ,
case
when [Month] = '200911' then ROUND(CONVERT(REAL, netpay_nov09), 0)
when [Month] = '200912' then ROUND(CONVERT(REAL, netpay_dec09), 0)
when [Month] = '201001' then ROUND(CONVERT(REAL, netpay_jan10), 0)
end as m1
....