从数据类型varchar转换为bigint时出错,该如何解决

从数据类型varchar转换为bigint时出错
select id,origin,supplier,invoice_name,receiving_date,invoice_no,cbl1,cbl2,so,fcr,hbl,consignee,department,product,etd,due_date,container_no,container_size,quantity,charge_item,charge_code,unit_price,invoice_amount,due_amount,no_vat,currency,cus_uid,status,remark,po,item,po_amt,com1,fact_code from dbo.invoice where 1=1  and cast(id as bigint)  in (cast(PO as bigint))

cast(id as bigint)  in (cast(PO as bigint))这段sql语句里面id为int类型,PO为char(10)
求解答
------解决方案--------------------
先看一下你的PO里面是否包含了非数字类型比如ABC之类的,用ISNUMERIC.http://technet.microsoft.com/zh-cn/library/ms186272.aspx