免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 7974 | 回复: 9
打印 上一主题 下一主题

数字和字符转换 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-03-25 21:02 |只看该作者 |倒序浏览
在SQL SERVER 中NUMERIC 类型是根据小数点的长度补充0的,目前想在查询结果中不显示不需要的0.
例子:
    TABLE1( Fco1   NUMERIC(18,5)  NULL)
有数据:
fco1
------------------------
1.00000
2.20000
3.33000
4.22200
5.03330
6.05555
想得到结果
fco1
------------------------
1
2.2
3.33
4.222
5.0333
5.05553

也就是最后的0不显示.

论坛徽章:
0
2 [报告]
发表于 2008-03-26 13:17 |只看该作者
在SQL SERVER 中NUMERIC 类型是根据小数点的长度补充0的,目前想在查询结果中不显示不需要的0.

汗!!!!
看来小学没学好啊。NUMERIC(18,5)本来就是精确到小数点后五位。当然要留下0!

论坛徽章:
0
3 [报告]
发表于 2008-03-26 14:38 |只看该作者
自己写个自定义函数截取非0部分。
然后再select。

论坛徽章:
0
4 [报告]
发表于 2008-03-26 16:07 |只看该作者
转字符,再转数字就没有0了,呵呵

论坛徽章:
0
5 [报告]
发表于 2008-03-26 18:28 |只看该作者
convert to char再convert to number

论坛徽章:
0
6 [报告]
发表于 2008-03-26 18:28 |只看该作者
哦convert to char后还应该截取掉0

论坛徽章:
0
7 [报告]
发表于 2008-03-26 23:27 |只看该作者
写函数就不想了,数据实在太多了,执行起来没有效率

试过了,不行,若转回来没有指定长度的话数值就截位了.
DECLARE @i_N NUMERIC(18,5)
SELECT @i_N = 6.05
SELECT @i_N,CAST(CAST( @i_N AS VARCHAR(32)) AS NUMERIC(18,4))
SELECT @i_N,CONVERT(NUMERIC(18,6),CAST( @i_N AS VARCHAR(32)))

论坛徽章:
0
8 [报告]
发表于 2008-03-27 09:28 |只看该作者
原帖由 wastrel007 于 2008-3-26 16:07 发表
转字符,再转数字就没有0了,呵呵

能否写详细点 再转数字的话好象要指定长度 但是每个长度都不同 要是指定相同的长度的话 照样会存在0

论坛徽章:
0
9 [报告]
发表于 2008-12-11 13:52 |只看该作者
select Cast(cast(Fco1  as  float)  as  varchar)  as  Result from TABLE1

论坛徽章:
0
10 [报告]
发表于 2008-12-12 08:17 |只看该作者
看看T-SQL的函数吧,可以找到答案。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP