从数据类型nvarchar转换为numeric出错~请问该如何修改呢? sql

selecttransidas日记帐分录凭证号,u_amtper,u_docnum,caseu_doctypewhen'opor'then'采购订单'when'ordr'... select transid as 日记帐分录凭证号 ,u_amtper,u_docnum,
case u_doctype
when 'opor' then '采购订单'
when 'ordr' then '销售订单'
end as '单据类型'

from jdt1
where cast(U_docnum as numeric(19,6))<>0
order by u_docnum
展开
 我来答
szm341
2013-01-28 · TA获得超过6726个赞
知道大有可为答主
回答量:5005
采纳率:100%
帮助的人:5183万
展开全部
看是什么错误,可能是u_docnum的长度超出你给的范围,也可能是u_docnum有非数值的字符,如abc之类
追问
提示从数据类型nvarchar转换为numeric出错,兄弟这个怎么搞?
追答
用select * from tb where isnumeric(字段)=0
看看是否有不能转换的值
精选情感语录
2013-01-28
知道答主
回答量:9
采纳率:0%
帮助的人:3.7万
展开全部
as numeric(19,6),没有这样写的吧,要么as float,要么as decimal(9,16)
cast不具有四舍五入的数据截取功能,故cast('12.5' as int)系统会报错。
刚查了一下numeric 和 decimal 数据类型的默认最大精度值是 38,功能等效吧。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式