将数据类型 varchar 转换为 numeric 时出错。
将数据类型   varchar   转换为   numeric   时出错。 
 这种情况出现时该怎么处理啊?
------解决方案--------------------用isnumeric(字段名)判断后,再转换 
------解决方案--------------------  --用isnumeric(字段名)判断后,再转换     
 select *,cast(字段名 as numeric(10,2)) 
 from 表名 
 where isnumeric(字段名)=1
------解决方案--------------------select * from 表名 
 where 
 isnumeric(字段名)=0--查不下不正确的值 
 处理一下再改
------解决方案--------------------update 表名 set  
     balance=balance * cast(curr_code as decimal(16,2)) 
 where isnumeric(curr_code)=1 
------解决方案--------------------wqplq() ( ) 信誉:100    Blog   加为好友  2007-04-10 16:05:38  得分: 0         
    还是不太懂 
 balance=balance*curr_code 
 这句要怎么转化呢? 
 balance是decimal(16,2) 
 curr_code是float类型的   
 ---------- 
 curr_code是float类型?     
 try     
 Select  
 balance=balance*Cast(curr_code As Numeric(10,2))  
 From 
 TableName 
 Where IsNumeric(curr_code) = 1
------解决方案--------------------select balance=balance*cast(curr_code as decimal(16,2)) 
 from det_item_bal,#all 
 where det_item_bal.item_code=#all.item_code and IsNumeric(curr_code) = 1
------解决方案--------------------select balance=balance*cast(curr_code as decimal(16,2)) 
 from det_item_bal,#all 
 where det_item_bal.item_code=#all.item_code 
 And IsNumeric(curr_code) = 1 --加上IsNumeric(curr_code) = 1   
------解决方案--------------------ISNUMERIC 
 決定運算式是否為有效的數值型別。   
 語法 
 ISNUMERIC ( expression )   
------解决方案--------------------wqplq() ( ) 信誉:100    Blog   加为好友  2007-04-10 16:17:56  得分: 0         
    加上IsNumeric(curr_code) = 1 
 的作用是什么呢?          
 ----- 
 就是將不是有效數值的數據剔除條,否則和balance計算的時候就會出錯。
------解决方案----------------------curr_code是哪個表的? 
 --使用 
 Select * From det_item_bal Where IsNumeric(curr_code) = 0 
 --或者 
 Select * From #all Where IsNumeric(curr_code) = 0 
 --將非法的數值查詢出來,手動修改掉,然後再使用 
 select balance=balance*cast(curr_code as decimal(16,2)) 
 from det_item_bal,#all 
 where det_item_bal.item_code=#all.item_code 
 --查詢