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 ...
随机推荐
- Java期末复习——主观题
JDK 和 JRE 有什么区别? JDK:Java Development Kit 的简称,java 开发工具包,提供了 java 的开发环境和运行环境. JRE:Java Runtime Envir ...
- Python实现斐波那契数列,九九乘法表,金字塔方法。
斐波那契数列普通函数实现 #普通函数 def fb(max): a,b=0,1 while a<max: print(a) a,b=b,a+b fb(100) 递归实现方法1 def fb1(m ...
- W5500 学习开发: W5500学习说明
前言 官方已经给了大部分的例子,我只是做一下移植说明 这一节看一下如何移植官网程序的DHCP 首先先明确:单片机和W5500通信是通过SPI,所有的数据都是通过SPI接收和发送, 所以,拿到官方源码只 ...
- [RN] React Native 自定义 底部 弹出 选择框 实现
React Native 自定义 底部选择框 实现 效果如图所示: 实现方法: 一.组件封装 CustomAlertDialog.js import React, {Component} from ' ...
- linux网络编程之用socket实现简单客户端和服务端的通信(基于UDP)
单客户端和服务端的通信(基于UDP) 代码 服务端代码socket3.c #include<sys/types.h> #include<sys/socket.h> #inc ...
- C语言实现linux之who功能
/* who_test.c */ #include<stdio.h> #include<string.h> #include<getopt.h> #include& ...
- 【WebTerminal】gotty工具
./gotty -w -p 8888 --permit-arguments /bin/sh ./gotty -w -p 8888 --permit-arguments docker exec -ti ...
- C# 激活主窗口
今天同学跟我说了一个bug,虽然很简单,但还是记录一下,也好让我养成写东西的习惯. C# windows form 程序中,发生某个事件时,需要自动弹出一个窗口,提示用户,并等待用户输入进行处理. 如 ...
- DI 依赖注入之unity(mvc)
DI 依赖注入之unity(使用unity.mvc) 一.nuget下载安装: 使用Nuget安装Unity.MVC 安装完成后会在~/App_Start/目录下自动生成UnityMvcActivat ...
- nginx负载均衡原理
负载均衡在服务端开发中算是一个比较重要的特性.因为Nginx除了作为常规的Web服务器外,还会被大规模的用于反向代理前端,因为Nginx的异步框架可以处理很大的并发请求,把这些并发请求hold住之后就 ...