回答

0

使用数据库 去

选择转换(十进制(10,2),LTRIM(RTRIM(COLUMNNAME))) 从表 其中ISNUMERIC(COLUMNNAME)= 1和LTRIM(RTRIM(COLUMNNAME))< >'。'

2

可以尝试

SELECT CASE WHEN ISNUMERIC(nvCol) THEN CAST(nvCol as DECIMAL(15,0)) 
    ELSE 0.0 END as DecData 
FROM YourTable 

ISNUMERIC可能太一般供你使用(它允许一些非常奇怪的“数字”),如果是这样的话,你可能需要添加自己的条件来过滤。您还必须获得DECIMAL的大小权限。最后,您可能希望在WHERE子句中检查这些行,而不是将它们默认为0.0。

+0

谢谢巴里。我希望我能早点看到你的答案。但是,我的老板在一瞬间写下了这个查询,并且运行良好。 根据列数据中的不一致性,您可以在查询结尾处添加更多的过滤器。 使用数据库从其中isnumeric(columnname)= 1和ltrim(rtrim(columnname))<>'的表中选择转换(十进制(10,2),ltrim(rtrim(columnname))))。 – 2009-06-19 02:24:22