从数据类型 varchar 转换为 numeric 时出错 为什么啊~~一直转不了

YueLingYueLiang 2013-06-04 04:21:19
select CAST(zd7 as numeric(18,2)) from YB_YPXMZD


zd7 是varchar(200)的 一直转不了
...全文
34074 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
justlastone 2013-06-06
  • 打赏
  • 举报
回复
引用 14 楼 ejason 的回复:
SELECT CASE isnumeric(zd7) WHEN 1  THEN
CAST(zd7 as numeric(18,2)) ELSE -1 END FROM YB_YPXMZD
不错,另外在改数据前最好去掉首尾空格什么的。
铁歌 2013-06-05
  • 打赏
  • 举报
回复
SELECT CASE isnumeric(zd7) WHEN 1  THEN
CAST(zd7 as numeric(18,2)) ELSE -1 END FROM YB_YPXMZD
MrYangkang 2013-06-05
  • 打赏
  • 举报
回复

--试试查的到数据不
select * from YB_YPXMZD  where zd7 is null or zd7=''
gogodiy 2013-06-05
  • 打赏
  • 举报
回复
有可能存在其他字符,比如空格什么的,最好先过滤下,只保留数字,然后再转换。
sqlkxr 2013-06-05
  • 打赏
  • 举报
回复
用 isnumeric函数看下那些是非数字。
sundayzhao 2013-06-05
  • 打赏
  • 举报
回复
select case when isnumeric(zd7)=1 then CAST(zd7 as numeric(18,2)) else -99999 end from YB_YPXMZD
usbusb2007 2013-06-04
  • 打赏
  • 举报
回复
里面可能有回车符,如果是excel导入的话
无涯大者 2013-06-04
  • 打赏
  • 举报
回复
必须要保证你的varchar里面的是数字.
好基友一被子 2013-06-04
  • 打赏
  • 举报
回复
引用 6 楼 YueLingYueLiang 的回复:
[quote=引用 4 楼 qy1116 的回复:] [quote=引用 1 楼 qy1116 的回复:] select Convert(numeric(18,2),'12')
保证你的varchar里面的是数字,否则。。。[/quote] 还是错误···这个zd7就是存价格的 不会有字母的 是从excel导进来的 [/quote] 你能把你出错的那个字符 贴上来么?我试试
YueLingYueLiang 2013-06-04
  • 打赏
  • 举报
回复
引用 4 楼 qy1116 的回复:
[quote=引用 1 楼 qy1116 的回复:] select Convert(numeric(18,2),'12')
保证你的varchar里面的是数字,否则。。。[/quote] 还是错误···这个zd7就是存价格的 不会有字母的 是从excel导进来的
YueLingYueLiang 2013-06-04
  • 打赏
  • 举报
回复
我看了 那个字符的列都是数字来的 没有字母
好基友一被子 2013-06-04
  • 打赏
  • 举报
回复
引用 1 楼 qy1116 的回复:
select Convert(numeric(18,2),'12')
保证你的varchar里面的是数字,否则。。。
YueLingYueLiang 2013-06-04
  • 打赏
  • 举报
回复
一直报 从数据类型 varchar 转换为 numeric 时出错 我看了列值也都是很小的数值
哥眼神纯洁不 2013-06-04
  • 打赏
  • 举报
回复
你里面有字符 怎么转换成数字 a能用数字代替吗
好基友一被子 2013-06-04
  • 打赏
  • 举报
回复
select Convert(numeric(18,2),'12')

34,591

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧