首页 > 解决方案 > 在 SQL 中转换/转换科学记数法 [从 Varchar 到 Decimal/Numeric]

问题描述

我有一个表,其中一列带有如下值。该列的数据类型在VARCHAR中。现在,为了客户体验,我必须将以下值转换为实际的非科学符号[参考结果]。请帮助我实现这一目标。

输入值:

1.1706260317772036d-3
3.0820440115884856d-4
5.584098106752352d-4
6.477217523714287d-4
3.897560962029404d-4
0

结果

0.0011706260317772036
0.00030820440115884856
0.0005584098106752352
0.0006477217523714287
0.0003897560962029404
0

我在下面尝试了这些但没有帮助。

select CAST(CAST('3.8761442700897326d-4'  AS FLOAT) AS bigint)

SELECT CAST('3.8761442700897326d-4' as REAL)

谢谢。

标签: mysqlsqlfloating-pointamazon-redshift

解决方案


REPLACE(str,'d', 'e') + 0

或者,在数字上下文中,简单地

REPLACE(str,'d', 'e')

小提琴


推荐阅读