数据库执行后 提示:将数据类型 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 展开
 我来答
大宝妈谈教育
高粉答主

2020-04-25 · 关注我不会让你失望
知道小有建树答主
回答量:3306
采纳率:100%
帮助的人:53.2万
展开全部

原因:转换错误导致。解决方法:重新查看内容来解决此问题。

如下参考:

1.打开数据库连接客户端NavicatPremium,并创建一个新的表结构,其中age列被故意设置为varchar。

2.成功创建表之后,为表创建一些数据,如下所示。

3.当有少量数据时,可以使用sum()函数直接求和,因为在SQL中它可以自动识别是字符串类型还是数字类型。

4.以上适用于整数、体或小数据,如果数据太大,且精度不高不适用,那么可以考虑使用SQLCAST()和CONVERT()函数。

5.接下来,看一下CONVERT()函数,它主要满足精度要求,并通过更改原始数据和将age列更改为带有小数的列来测试它。

tj_angela
推荐于2018-07-30 · TA获得超过7530个赞
知道大有可为答主
回答量:6797
采纳率:75%
帮助的人:2563万
展开全部

出现这个问题一般在该字段已经有数据情况下发生,

并且有以下可能情况:

  1. 字段中拥有非数字字符

  2. 原字段含null,但新字段设置了非空约束.

  3. 精度太大, float的精度为6~7位有效数字

本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
szm341
2014-01-06 · TA获得超过6726个赞
知道大有可为答主
回答量:5005
采纳率:100%
帮助的人:5146万
展开全部
检查一下数据中是否有不能转换的数据,可以用isnumeric(DBalance)=0判断一下
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
海战东东
2017-07-23 · TA获得超过868个赞
知道答主
回答量:109
采纳率:0%
帮助的人:37万
展开全部
不给表结构谁知道你是列类型是什么?
而且很明显好吧,检查一下return的varchar是不是varchar,哪个列搞错了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式