首页 > 解决方案 > 将 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 位。

谢谢!

标签: sqlsql-server

解决方案


相反,除以 1000 并变成小数:

select cast( (col / 10000) as decimal(18, 0))

您面临的问题是浮点到字符串的默认转换有时可能采用科学计数法。


推荐阅读