怎么将sql server 语句中integer类型转换成string

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了怎么将sql server 语句中integer类型转换成string相关的知识,希望对你有一定的参考价值。

参考技术A SQL Server中的数值类型分为两种,一种是精确的数值类型,具体的数据类型有:
bit、tinyint、smallint、int、bigint、smallmoney、money和decimal,这些数据类型能够精确的表明某以数值;
另一种是近似的数值类型,具体就是float和real。
浮点数据为近似值,因此,并非数据类型范围内的所有值都能精确地表示。
有些时候需要将这些数值类型转换为字符串类型,用到的转换函数就是cast和convert,这两个函数的作用都是进行类型转换,只不过语法格式不同。
对于精确数值的数据类型,转换出来的字符串就是存储的数值,比如:
declare @i int
set @i=123456789
print 'test:'+convert(varchar(20),@i)
输出就是:test:123456789
而如果对于近似数值的数据类型,那么可就没有那么简单了。
declare @i float
set @i=123456789
print 'test:'+convert(varchar(20),@i)
输出结果:test:1.23457e+008
输出的结果是使用科学计数法来表示的,再看看可否通过指定转换样式来指定不使用科学计数法呢?帮助文档中说到float 或 real 转换为字符数据时的 style 值:
0(默认值)最大为 6 位数。根据需要使用科学记数法。
1 始终为 8 位值。始终使用科学记数法。
2 始终为 16 位值。始终使用科学记数法。
值是123456789,超过了6位数.所以不管是0还是1,2结果都会使用科学计数法来表示。
那么要怎么样才能将我们的数据不转换成科学计数法而输出呢?比较简单的办法就是将近似数据转换为精确数据,然后再将精确数据转换成字符串。
同样以上面的例子为例, 进行两次数据类型的转换如下:
declare @i float
set @i=123456789
print 'test:'+convert(varchar(20),convert(int,@i))
输出:test:123456789如果是有小数,那么我们要转换出小数位的话,可以转换成decimal,转换出的小数位数在定义decimal时指定。
比如要输出4位小数,那么转换代码是:
declare @i float
set @i=123456789.12
print 'test:'+convert(varchar(20),convert(decimal(18,4),@i))
输出:test:123456789.1200本回答被提问者采纳

怎么查看sql server累计执行的sql次数

求一条sql语句查看sql server累计执行的sql语句数量,原来用的是
select sum(execution_count) FROM sys.dm_exec_query_stats ,一段时间后发现不是累计值,查找官网得知:sys.dm_exec_query_stats 返回 SQL Server 2012 中缓存查询计划的聚合性能统计信息。 缓存计划中的每个查询语句在该视图中对应一行,并且行的生存期与计划本身相关联。 在从缓存删除计划时,也将从该视图中删除对应行。

参考技术A 可以写个游标 在游标设置个局部变量 每次执行这个sql 就让他自加一 参考技术B 貌似没有这方面的计数器,通常在缓存中看个粗略计数吧 参考技术C 可以写个触发器,单独记录呀追问

我需要的是一条sql语句可以直接查询出结果。

追答

这个估计没有吧,有了告诉我下,谢谢了

以上是关于怎么将sql server 语句中integer类型转换成string的主要内容,如果未能解决你的问题,请参考以下文章

sqlserver中怎么拼接查询语句

在sql server中循环语句 for要怎么使用

如何将EXCEL数据导入到SQL SERVER数据库中

这个sql语句怎么写sqlserver

sql 语句怎么将一行拆分成两行

sql server 2000 中怎么去掉 和 还原 自增字段