sqlserver中怎么把varchar类型转换成numeric类型,如下句子 20

declare@lastbl1numeric(18,4)declare@lastbl2numeric(18,4)set@lastbl1='100.1'set@lastbl... declare @lastbl1 numeric ( 18 , 4)
declare @lastbl2 numeric ( 18 , 4)
set @lastbl1='100.1'
set @lastbl2= CAST( (@lastbl1+'%') AS numeric(10,2))
展开
 我来答
leaves__147
2020-02-19
知道答主
回答量:4
采纳率:0%
帮助的人:631
展开全部

代码问题:”100.1%”这种带有非数字的字符是不可以转换成numeric的。

改正方法:你可以将数字除以100,变为“1.001”再转换成numeric。                                                       set @lastbl1 =“1.001”                                                                                                           set @lastbl2 =  CAST( @lastbl1 AS numeric(10,2))



扩展资料:

1.SQL Server中可以使用cast和convert函数进行数据类型的转换。

如:set @lastbl2= CAST( @lastbl1 AS numeric(10,2))    

或   set @lastbl2= CONVERT(numeric(10,2),@lastbl1 )

2.cast与convert的不同:convert多用于关于日期时间的转换;cast一般用于小数数值和字符型。

如:select CONVERT(varchar(12) , getdate(),111 ) -- 2017/08/13

参考资料:

百度百科--CAST和CONVERT

大雅新科技有限公司
2024-11-19 广告
这方面更多更全面的信息其实可以找下大雅新。深圳市大雅新科技有限公司从事KVM延长器,DVI延长器,USB延长器,键盘鼠标延长器,双绞线视频传输器,VGA视频双绞线传输器,VGA延长器,VGA视频延长器,DVI KVM 切换器等,优质供应商,... 点击进入详情页
本回答由大雅新科技有限公司提供
帐号已注销
高粉答主

2020-03-01 · 每个回答都超有意思的
知道答主
回答量:2169
采纳率:0%
帮助的人:35.8万
展开全部

1、打开数据库连接客户端Navicat Premium ,创建一个新的表结构,这里age这列 故意 设置为 varchar。

2、创建表成功之后,为刚刚的表创建一些数据。

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

4、以上适用于整数,或者是数据量小,要是数据量太大,并且精度较高不适用,那么就可以考虑使用SQL 的CAST()和CONVERT()函数。

5、在接着看看CONVERT()函数,这个函数主要是服务于要求精度的需求,这里改改原始的数据,把age列改为带小数的用于测试一下这个函数。

本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
badkano
推荐于2016-03-10 · 知道合伙人体育行家
badkano
知道合伙人体育行家
采纳数:144776 获赞数:885366
团长

向TA提问 私信TA
展开全部

可以用cast来转换

如:列名叫grade,表名为A

select cast(grade as numeric(y,x)) from A

其中y代表数据长度,x代表小数位长度

注意:grade中必须全为数字或小数点,如果存在中文或英文,则运行时会报错。

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
0808xyj
推荐于2018-02-27 · TA获得超过1891个赞
知道大有可为答主
回答量:1237
采纳率:100%
帮助的人:1077万
展开全部
示例:select cast('10201.210114' as numeric(18,4))
CONVERT 函数和 CAST 函数

语法:
CAST ( expression AS data_type [ (length ) ])
CONVERT ( data_type [ ( length ) ] , expression [ , style ] )



CAST(varchar列名 AS numeric(10,2))
CONVERT(numeric(10,2), varchar列名)
-- 注意,如果varchar列不是数字会出错
疑问点:你的意图是什么? 那个% 可以直接除以100啊?
追问
%表示想在两个数字后面加个百分号表示百分比。cast我试过了,报varchar转换成numeric类型出错。我贴出的那段代码,如果可以转换成功,问题就解决了
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
神崎橙
2014-12-04 · TA获得超过251个赞
知道小有建树答主
回答量:593
采纳率:0%
帮助的人:339万
展开全部
18.4% 这个在数据库里面只能是字符类型,如果你要显示18.4,只能在查询结果里面或者程序处理
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式