数据库执行后 提示:将数据类型 varchar 转换为 float 时出错。 5
useYHgocreatefunctionDeposit_fun(@DBalance1float)returnsvarchar(20)asbegindeclare@ret...
use YHgocreatefunction Deposit_fun(@DBalance1 float) returns varchar(20)asbegin declare @returnstr varchar(20) if @DBalance1>=700.00set@returnstr='VIP客户'elseset@DBalance1='普通客户'return@returnstrend 执行----selectDNo,DName,DID,DBalance,dbo.Deposit_fun(DBalance) as 客户等级fromdbo.Deposit
展开
4个回答
展开全部
原因:转换错误导致。解决方法:重新查看内容来解决此问题。
如下参考:
1.打开数据库连接客户端NavicatPremium,并创建一个新的表结构,其中age列被故意设置为varchar。
2.成功创建表之后,为表创建一些数据,如下所示。
3.当有少量数据时,可以使用sum()函数直接求和,因为在SQL中它可以自动识别是字符串类型还是数字类型。
4.以上适用于整数、体或小数据,如果数据太大,且精度不高不适用,那么可以考虑使用SQLCAST()和CONVERT()函数。
5.接下来,看一下CONVERT()函数,它主要满足精度要求,并通过更改原始数据和将age列更改为带有小数的列来测试它。
展开全部
出现这个问题一般在该字段已经有数据情况下发生,
并且有以下可能情况:
字段中拥有非数字字符
原字段含null,但新字段设置了非空约束.
精度太大, float的精度为6~7位有效数字
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
检查一下数据中是否有不能转换的数据,可以用isnumeric(DBalance)=0判断一下
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
不给表结构谁知道你是列类型是什么?
而且很明显好吧,检查一下return的varchar是不是varchar,哪个列搞错了
而且很明显好吧,检查一下return的varchar是不是varchar,哪个列搞错了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询