mssql sqlserver sql脚本数字转换为字符串的方法分享


摘要:
下文讲述使用sql脚本将数字转换为字符串的方法分享,如下所示:
实验环境:sql server 2008 R2


最近在做系统上线初始化,我们将一些excel导入至sqlserver数据库时,有些数据被转换为float类型,但是它的实际类型应该为varchar类型,下文将讲述将float转换为varchar类型的方法,如下所示:


在MSSQL中,存储数值类型有以下类型:
bit: 精确到具体数值
tinyint:精确到具体数值
smallint:精确到具体数值
int:精确到具体数值
bigint:精确到具体数值
smallmoney:精确到具体数值
money:精确到具体数值
decimal:精确到具体数值
float:近似数值
real:近似数值
对一些数值类型转换为字符串类型,我们可以采用cast和convert转换方法对指定数值进行类型转换。

精确具体数值转换为字符串类型的方法

      declare  @maomao  int
      set  @maomao=20190528
      print '精确数值转换:' + convert(varchar(80),@maomao) 
	  ----输出结果---
	   精确数值转换:20190528 
   


近似数值转换为字符串类型的方法

      declare  @maomao  float
      set  @maomao=20190528
      print '近似数值转换:' + convert(varchar(80),@maomao) 
	   ----输出结果---
	    近似数值转换:2.01905e+007
   

从上文我们可以看出输出的结果被科学记数法,由于我们没有指定convert风格,所以默认为0
style=0,最大位数为6位
style=1,最大位数为8位
style=2,最大位数为16位

      declare  @maomao  float
      set  @maomao=20190528
      print '近似数值转换:' + convert(varchar(80),@maomao,0) 
      print '近似数值转换:' + convert(varchar(80),@maomao,1) 
      print '近似数值转换:' + convert(varchar(80),@maomao,2)  
	  -------------输出结果---------
	  近似数值转换:2.01905e+007
      近似数值转换:2.0190528e+007
      近似数值转换:2.019052800000000e+007
      近似数值转换:2.01905e+007
  

从上文中,我们可以发现style为0,1,2或者其它无效值时,所得到的结果都为科学记数法值字符串,不利于后续的操作,那么对于float和real类型转换为字符串,我们应该借助中间变量类型decimal,
先将其值转换为decimal,然后再转换为字符串,如下所示:

      declare @maomao365_com  float
		 set @maomao365_com =123456789.12
		 print '近似数值转换为字符串方法:' 
         + convert (varchar (80), convert( decimal (18,4),@maomao365_com))
   
mssql_sqlserver_数值转为字符串_8714

mssql_sqlserver_数值转为字符串_8714