我在将nvarchar字符强制转换为numeric报错。
其格式如下:
select cast(h.U_SecondUnit as numeric)
from [@ava_oime] h
我也知道数据表[@ava_oime]中的 U_SecondUnit 字段中有字符,需要限制,如果在后面加个限制:
select cast(h.U_SecondUnit as numeric)
from [@ava_oime] h
where isnumeric(h.u_secondunit) =1
就会把大量的数据去除掉的,所以这样也不可行。那我该怎么办才好,数据库中的表[@ava_oime]的字段类型是不能修改的。 请各位大侠帮帮我解决下,我在这里不胜感激啊!!
其格式如下:
select cast(h.U_SecondUnit as numeric)
from [@ava_oime] h
我也知道数据表[@ava_oime]中的 U_SecondUnit 字段中有字符,需要限制,如果在后面加个限制:
select cast(h.U_SecondUnit as numeric)
from [@ava_oime] h
where isnumeric(h.u_secondunit) =1
就会把大量的数据去除掉的,所以这样也不可行。那我该怎么办才好,数据库中的表[@ava_oime]的字段类型是不能修改的。 请各位大侠帮帮我解决下,我在这里不胜感激啊!!
select h.U_SecondUnit
from [@ava_oime] h
where isnumeric(h.u_secondunit) =0
查查那些不完全是数字的数据有什么规律,然后用replace把他们消掉,再转成数字
from (
select *
from [@ava_oime] h
where isnumeric(h.u_secondunit) =1
) as t这样呢?
from [@ava_oime] h
where isnumeric(h.u_secondunit) =0 查看了,就是3种的数据,一种是NULL,一种是汉字字符,剩下的就是显示的是为空,以后数据库中有新数据的话,也是在这3种中出现的。请教josy 大侠,我下来该怎么替代的,谢谢!
原始数据是下面截图中的3中,我要的替代后的数据能直接插入到另外一个表的字段为numeric型中,只要不报错,就能插入到另外一个表中的,就好了。
from [@ava_oime] h
如果只是要求不报错,不取含有中文或者null里面的数据的话,直接用0替代就可以了
类似这样:
select
case
when isnumeric(h.u_secondunit)=1 then cast(h.U_SecondUnit as numeric)
else 0
end
from [@ava_oime] h