相关文章推荐
坚强的南瓜  ·  联想 小新 Air14 ...·  3 月前    · 
踏实的韭菜  ·  部门动态·  1 年前    · 
近视的烈马  ·  JDO持久 (jdbc ejb) - ...·  2 年前    · 

在表中的字段类型可以为NULL,且数据全为数字或者“”的情况下,直接把字段类型为 varchar 更改为 decimal 有可能会提示“ 将数据类型 varchar 转换为 decimal 时出错 ”, 可以先把字段类型更改为 int ,然后在把字段类型更改为 decimal 但是这样会把此字段值为“”的数据全部改为0, 如果数据为0有影响的话,可以再把值为0的数据改为NULL。

原表设计:

alter table temp alter column phone int null

alter table temp alter column phone decimal null

更改后的表设计:

更改后的表数据:

update temp set phone= NULL where phone=0

-------------------------------------------------------------------------------------------------------------------------------------

菜鸟一枚,本文只是方便个人日后学习并使用,文中如有错误,欢迎各位大佬指点!

转载于:https://www.cnblogs.com/MonkeyDWang/p/11106836.html

原文链接: http://www.cnblogs.com/MonkeyDWang/p/11106836.html 今天在操作 数据库 时,需要将字符串 换成 Decimal 类型 。代码如下: selectcast('0.12'as decimal (18,2)); selectconvert( decimal (18,2),'0.12'); 当需要将科学计数法的数字字符串 换成 Decimal 时,这2种写法都报错: Msg 8114, Level 16, State 5, Line 1 Error... 在我们写代码的实际业务中,有时候实体类用的是String, 数据库 中自然是 VARCHAR 类型 ,但是如果这个实体的属性值放的是数字 类型 ,你查询的时候又需要对它进行排序。sql怎么写呢。 别担心MySQL提供了 换方法:CAST ,CONVERT 例如:我把 VARCHAR 类型 的价格 换成 DECIMAL 然后再进行排序 1.select p... 就成功的解决错误了 。。下面是关于原理的讲解肯定方法不唯一 至于错误,的产生,这个肯能和 数据库 myeclpise 之间的接口有关系 ,数据存储来回 换。这就当一个经验,有这个函数 ,以后项目有错误就这... 一般情况下, sqlserver 会自动完成数据 换。但这种 换有时候很容易出错,尤其是n varchar 换为numeric时。如果能够明确数据 类型 ,最好显式 换。 举个我遇到的例子, SELECT * FROM ITEM_INFO_TEST WHERE OBJECT_NO=’2’ AND COL530<5000.00 //COL530在 数据库 类型 为n varchar (30),实际查询的时候值为4 在我们写代码的实际业务中,有时候实体类用的是String, 数据库 中自然是 VARCHAR 类型 ,但是如果这个实体的属性值放的是数字 类型 ,你查询的时候又需要对它进行排序。sql怎么写呢。        别担心mysql提供了 换方法:CAST  ,CONVERT        例如:我把 VARCHAR 类型 的价格 换成 DECIMAL 然后再进行排序        1.select  pri 换数据发生 消息 8115,级别 16,状态 6,第 1 行 将 n varchar 换为数据 类型 numeric 时出现算术溢出错误。 n varchar 是带很长小数,直接 换成 decimal 失败 解决方案: 先 换成float 再 换成 decimal 或者int(去掉小数位) CAST(CAST(TRANS_CHARGE AS FLOAT) AS INT) Wh... select t.totalprice*(select cast(s.value as decimal (3,2)) from sys_param s where s.name='积分') as info from trade_info t 在做查询乘法运算的时候,碰到了 varchar 跟int相乘变成字符串拼接的问题, 通过cast(value as type),将 varchar sqlserver 搜索中怎么把 varchar 类型 换成numeric 类型 可以用cast来 换 如:列名叫grade,表名为A select cast(grade as numeric(y,x)) from A 其中y代表数据长度,x代表小数位长度 注意:grade中必须全为数字或小数点,如果存在中文或英文,则运行时会报错 载于:https://www.cnblogs.com/...