sql - 将 LEFT 与 LEN 一起使用会将浮点数转换为奇怪的格式(例如 6.0871e)
问题描述
我有大约 7000 万行数据,其中一列包含数字,但它是浮点格式。我需要摆脱该列的最后 4 位数字,即我需要打开它
60871003002001
60871003002002
60871003002003
进入这个
6087100300
6087100300
6087100300
当我运行查询
select top 3 LEFT(COLUMN, LEN(COLUMN)-4) as a from TABLE
它返回以下内容:
6.0871e
6.0871e
6.0871e
有谁知道为什么?我正在使用 SQL Server。没有空值,每个数字的长度为 12 到 15 位。
谢谢!
解决方案
相反,除以 1000 并变成小数:
select cast( (col / 10000) as decimal(18, 0))
您面临的问题是浮点到字符串的默认转换有时可能采用科学计数法。
推荐阅读
- spring - springboot项目用tomcat启动失败
- c# - 当某物进入其触发器时,您能否使 Unity 中的预制件的某个实例化克隆被破坏?
- java - ResultSet 总是返回 null,不管 JDBC/MySQL、Java 有什么变化
- java - Deeplearning4j Word2Vec 构建器种子
- php - Mysqli 影响 INSERT IGNORE 返回零的行
- c# - 使用 Windows IOT 的 RPi 和 Arduino Uno 之间的 I2C 连接问题
- html - Bootstrap 导航栏在背景之上
- java - OpenCSV:将嵌套 Bean 映射到 CSV 文件
- python - KNN 图像分类器:权限和内存错误
- elasticsearch - Elasticsearch - NEST - Upsert