SqlServer中将数值类型的末尾0去掉

更新时间:2023-06-02 21:38:26 阅读: 评论:0

SqlServer中将数值类型的末尾0去掉
Sql Server中将数值类型的末尾0去掉
1、SQL中要求查询出某表⾥XX数量:
SELECT
CONVERT(FLOAT, ISNULL(A.VALUE,0))
FROM WORK_INFO AS A
WHEREhelpyourlf
<
注意:instagram是什么意思
CONVERT(FLOAT,XX)虽然可以去掉⼩数点后末尾0,但是,当整数部不⼤于15位数时,⼩数部显⽰个数=15-整数部个数;当整数部⼤于15位数时,⼩数部会四舍五⼊eg:
youdanSELECT
CONVERT(float ,12345678.123456789000)
, CONVERT(float ,123.1234567896667000)
, CONVERT(float ,123456789333333.1234567896667000)
结果为:
12345678.1234568
123.123456789667
1.23456789333333E15
2、SQL中要求查询出某表⾥XX数量+单位:
第⼀种:(不建议使⽤)
SELECT
CONVERT(VARCHAR(20),CONVERT(FLOAT, ISNULL(A.VALUE,0))) + ISNULL(A.UNIT,'')
FROM WORK_INFO AS A
WHERE
ome 103
<
注意:
①两个ISNULL不可省,要不然当其中⼀个值为null时,查询出来值是null
allergic②CONVERT(FLOAT,XX)虽然可以去掉⼩数点后末尾0,但有两个致命问题,当整数部不⼤于6位数时,⼩数部显⽰个数=6-整数部个数;当整数部⼤于6位数时,⼩数部eg:CONVERT(FLOAT,2345.6790)-->2345.68;
CONVERT(FLOAT,3458888.6789)-->3.45889e+006
③由于单位不是数值,所以⽤CONVERT(VARCHAR(20),)再拼接单位
武汉新东方学校第⼆种:(有点⿇烦)
SELECT
ISNULL(REVERSE(STUFF(REVERSE(CONVERT(VARCHAR,A.VALUE)),1,PATINDEX('%[1-9]%',REVERSE(CONVERT(VARCHAR,A.VALUE)))-1,'')), 0)
+ ISNULL(A.UNIT, '')
FROM WORK_INFO AS A
WHERE
<
关于第⼆种中使⽤到的函数:
sukey
①Sql ver⾥⾃带的REVERSE函数,这个函数的主要功能是把⼀个字符产反转。
--lect REVERSE('hello,world')
--将得到如下的输出:dlrow,olleh
②Sql ver⾥⾃带的STUFF函数将字符串插⼊到另⼀个字符串中。 它从第⼀个字符串的开始位置删除指定长度的字符;然后将第⼆
个字符串插⼊到第⼀个字符串的开始位置。德瑞姆心理培训
fsi--语法:STUFF ( character_expression , start , length , replaceWith_expression )
③Sql ver⾥⾯有个⾃带的PATINDEX函数,返回pattern字符串在表达式expression⾥第⼀次出现的位置,起始值从1开始算。  --语法格式:PATINDEX ( '%pattern%' , expression )
--pattern字符串在expression表达式⾥没找就返回0,对所有有效的⽂本和字符串就是有效的数据类型。
>gman

本文发布于:2023-06-02 21:38:26,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/fan/78/837928.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:字符串   末尾   位置   整数
相关文章
留言与评论(共有 0 条评论)
   
验证码:
推荐文章
排行榜
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图