这个问题可能会在很多线程中得到解答,但我无法找到针对我的问题的特定答案。
问:我从 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
CAST
到 FLOAT
,然后到 DECIMAL
。
关于sql - 将 JSON 字符串转换为十进制的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51192834/