SQL Server中如何把 科学记数法字符串 变为 数字字符串
当我们将Excel的数据导入SQL Server时,如果用SQL Server的字符串类型(VARCHAR和NVARCHAR等)来存储从Excel导入的数字,有时候这些数字会变成科学记数法字符串(例如'1.23E+10'实际上是'12300000000')。
这并不是我们想要的结果,我们希望从Excel导入的数字还是数字字符串,而不是科学记数法。
在SQL Server中我们可以通过这个思路来将 科学记数法字符串 变为 数字字符串:
- 首先将 科学记数法字符串 转换为 FLOAT类型
- 接着将 FLOAT类型 转换为 DECIMAL类型(DECIMAL类型声明的小数位数,就是需要保留的小数位数)
- 将 DECIMAL类型 转换为 字符串类型(VARCHAR和NVARCHAR等)
这个思路的核心就是DECIMAL类型,因为DECIMAL类型在SQL Server中不会表示为科学记数法,有可能你会问,为什么转换为FLOAT类型不行呢?原因是在SQL Server中FLOAT类型也有可能会出现科学记数法,点击这里了解
我们下面就举个例子,将 科学记数法字符串 '1.23E+10' 转换为 整数字符串 '12300000000':
DECLARE @Number NVARCHAR(50)=N'1.23E+10' SELECT CONVERT(NVARCHAR(50),CONVERT(DECIMAL(28,0),CONVERT(FLOAT,@Number)))
结果如下:

由于我们知道该科学记数法是一个整数,所以我们声明转换为DECIMAL类型时,声明的是DECIMAL(28,0),小数位是0,也就是不保留小数位。
下面我们再来看一个例子,将 科学记数法字符串 '1.23456789E+5' 转换为 保留两位小数的字符串 '123456.79':
DECLARE @Number NVARCHAR(50)=N'1.23456789E+5' SELECT CONVERT(NVARCHAR(50),CONVERT(DECIMAL(28,2),CONVERT(FLOAT,@Number)))
结果如下:

由于我们知道该科学记数法是一个小数,所以我们声明转换为DECIMAL类型时,声明的是DECIMAL(28,2),小数位是2,也就是保留两位小数。
SQL Server中如何把 科学记数法字符串 变为 数字字符串的更多相关文章
- sql server中的怎么把数值型转换为字符串
①select cast(字段 as varchar) from 表名 ②select convert(varchar(50),字段) from 表名
- ASP.NET用SQL Server中的数据来生成JSON字符串
原文引自: 作者: 缺水的海豚 来源: 博客园 发布时间: 2010-09-21 21:47 阅读: 6136 次 推荐: 0 原文链接 [收藏] 摘要:ExtJs用到的数据内容基本 ...
- SQL Server中截取字符串常用函数
SQL Server 中截取字符串常用的函数: .LEFT ( character_expression , integer_expression ) 函数说明:LEFT ( '源字符串' , '要截 ...
- SQL Server中字符串转化为GUID的标量函数实现
还是工作中遇到的需求,有时候和外部的系统对接,进行数据的核对功能,外部的系统有时候主键字段列数据类是UNIQUEIDENTIFER(GUID)类型的字符串格式,去除了GUID格式中的分隔符“- ...
- 实现SQL Server中的切割字符串SplitString函数,返回Table
有时我们要用到批量操作时都会对字符串进行拆分,可是SQL Server中却没有自带Split函数,所以要自己来实现了. -- ===================================== ...
- SQL Server 中截取字符串常用的函数
SQL Server 中截取字符串常用的函数: 1.LEFT ( character_expression , integer_expression ) 函数说明:LEFT ( '源字符串' , '要 ...
- Sql Server 中将由逗号“,”分割的一个字符串转换为一个表集,并应用到 in 条件中
Sql Server 中将由逗号“,”分割的一个字符串,转换为一个表,并应用与 in 条件 ,,) 这样的语句和常用,但是如果in 后面的 1,2,3是变量怎么办呢,一般会用字符串连接的方式构造sql ...
- sql server中截取字符串的常用函数
我们如果要在sql server中,使用截取字符串的方法要怎样使用呢? sql server提供了3个常用截取字符串方法,LEFT().RIGHT().SUBSTRING() /****** Sql ...
- 实现SQL Server中的切割字符串SplitString函数
有时我们要用到批量操作时都会对字符串进行拆分,可是SQL Server中却没有自带Split函数,所以要自己来实现了.没什么好说的,需要的朋友直接拿去用吧 SET ANSI_NULLS ON GO S ...
随机推荐
- Nginx Rewrite相关功能-rewrite指令
Nginx Rewrite相关功能-rewrite指令 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任.
- 动态加载swiper,默认显示最后一个swiper-slide解决方案???
问题描述: 用ajax动态加载swiper-slide以后,由于我是自适应屏幕的尺寸来决定一屏显示多少图片,所以加了 slidesPerView:'auto'这条属性,加了这条属性过后,每次刷新页面的 ...
- LuoguP5540:【模板】最小乘积生成树(几何逼近)
题意:给定N点,M边,每条边有两个属性(a,b),现在让你选N-1条边出来,然后使得∑a*∑b最小.N<200,M<1e4: 思路:我们把∑a看成x,∑b看成y,那么一个方案对应一个二维坐 ...
- Hibernate框架学习1
框架是什么 1.框架是用来提高开发效率的 2.封装了好了一些功能.我们需要使用这些功能时,调用即可.不需要再手动实现. 3.所以框架可以理解成是一个半成品的项目.只要懂得如何驾驭这些功能即可. orm ...
- git crate&query&delete tag(九)
root@vmuer-VirtualBox:/opt/myProject# git log --pretty=oneline0169b7a1c4bccb47e76711f353fd8d3864bde9 ...
- 在执行一行代码之前CLR做的68件事
因为CLR是一个托管环境,所以运行时中有几个组件需要在执行任何代码之前初始化.本文将介绍EE(执行引擎)启动程序,并详细检查初始化过程.68只是一个粗略的指南,它取决于您使用的运行时版本.启用了哪些功 ...
- No module named 'requests_toolbelt'
pip install requests-toolbelt
- 通过rpm安装crontab
可以在对应的虚拟机centos上查看 所安装的crontab安装信息,然后选中rpm包进行安装,命令:rpm -qa |grep cron 如: 如没有上述信息,表名没有安装,也可以直接用cronta ...
- oracle用dba创建用户并授权
参考: https://blog.csdn.net/zhang195617/article/details/5857769 sqlplus中切换用户,如切换到adm用户,命令为:conn adm/12 ...
- Spring Security教程之Jsp标签(八)
目录 1.1 authorize 1.2 authentication 1.3 accesscontrollist Spring Security也有对Jsp标签的支持的标签库 ...