SqlServer 去除特殊字符、 小数类型(float 和 decimal区别)、截取指定字段某一个字符的前面/后面的字符串详解

一、去除特殊字符

1、SQL trim()函数去掉两头空格

ltrim()去除左空格rtrim()去除右空格。去除两头空格就是 select ltrim(rtrim(字段))

2、replace()函数替换字符

按照ASCII码

select char(64) 对应@ 那么 select replace('abc@163.com',char(64),'d')

结果: abcd163.com

去掉tab为 select replace('字段',char(9),'')

去掉空格为 select replace('字段',char(32),'')

去掉换行为 select replace('字段',char(10),'')

二、小数类型(float 和 decimal区别)

在SQL Server中,实际上小数数值只有两种数据类型:float 和 decimal,分别是近似数值和精确数值。其他小数类型,都可以使用float和decimal来替代,例如,双精度(double precision)数据类型等价于 float(53),real等价于float(24),numeric是 decimal的同义词,应该避免在程序中直接使用 double precision、real和numeric,而是用 float(24) 、float(53)和decimal 代替。

float是近似数值,存在精度缺失;decimal是精确数值,不存在精度损失。当数值不允许精度丢失时,使用 decimal数据类型存储数据。在计算小数的除法时,SQL Server 内部隐式升级数据类型,根据小数数值的数据类型,就近向float(24) 或float(53)转换

三、如何截取指定字段某一个字符的前面/后面的字符串?

假设数据库中,某一列数据像这样,每个数据都有同一个字符“-”,这时如果我们需要获取这个字符的前面的字符串或后面的字符串,应该用什么SQL语句呢?

1

SUBSTRING ( expression, start, length )               --SUBSTRING('列名',起始位数,要取的字符串长度)

1.获取“-”前面的字符串:

SUBSTRING(  FBILLNO  ,          1           ,  CHARINDEX('-',FBILLNO)-1  )

 列名   ,从第一位取值 ,要取的字符串长度是“-”字符在字段中的位置减1

2.获取“-”后面的字符串:

SUBSTRING(  FBILLNO  ,  

CHARINDEX('-',FBILLNO)+1 ,    len(FBILLNO)-charindex('-',FBILLNO)  )

 列名      ,   从“-”字符后一位开始            ,   要取的字符串长度是字段总长度减去“-”字符所在位置


 

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值