sql - 将 JSON 字符串转换为十进制的问题

标签 sql sql-server tsql casting decimal

这个问题可能会在很多线程中得到解答,但我无法找到针对我的问题的特定答案。

问:我从 API(json 格式)获取数据,其中所有列都以字符串形式出现,并插入到一个表中,该表的所有列都是字符串形式并用作源表。

现在,我正在尝试将数据从该源转换到目标,并进行所有必要的转换以将数据插入目标表。但是十进制 (16,8) 转换失败。

我最后调试了问题,发现在从 API 获取数据期间,将数据返回到 json 格式,将值转换为一些不寻常的格式。

例如0.00007 转换为 7E-05,许多其他行也会发生这种情况。

我知道我可以在 API 实现级别解决这个问题。但我要求在 SQL 服务器端解决这个问题。所以我需要一个将 7E-05 转换为 0.00007 的解决方案。

最佳答案

尝试这样的事情:

SELECT CAST(CAST(@t AS FLOAT) AS DECIMAL(16,8))

结果:

0.00007000

CASTFLOAT,然后到 DECIMAL

关于sql - 将 JSON 字符串转换为十进制的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51192834/

相关文章:

sql - 插入新表时更新外键

sql - MSSQL - 联合所有具有不同小数精度的

sql - 如何全范围均等地减少SQL查询的结果行数?

sql-server - Sql server 和 R、数据挖掘

sql - 将 Access TRANSFORM/PIVOT 查询转换为 SQL Server

sql-server - 从 SQL 存储过程调用 SOAP Web 服务

SQL Server sp_ExecuteSQL 和执行计划

mysql - 如何修改外键或主键列的数据类型?

SQL 心理 block - 检查一个时间段是否与另一个时间段重叠

sql - PostgreSQL:当 x=a 和 x=b 时如何从表中选择 2 个不同的计数