SQL - return 字段中的所有浮点值不写科学计数法
SQL - return all float values in field without writing in scientific notation
我有一列包含非常大的值集 (>21k),小数位数不确定,存在一些示例数据 (FLOAT):
6.46
0.784
8.05
86.4
2.64
0
2.14
1E-06
14.81
3.45
0.87243
0
1.12279
0
21.41
0.6243
我想 return 除了“1E-06”之外的所有值都应该是 .000001;此外,任何科学计数法都应采用纯十进制格式。
我曾尝试编写某种 CASE 语句,其中 "THEN" 后跟 "CONVERT(varchar(100), CAST(@testFloat AS decimal(38,x)))",其中 x 是信号图的数量,但是我无法获得 WHEN 语句的正确条件,这是我最好的尝试:
CASE
WHEN @testFloat = 0 THEN @testFloat
WHEN FLOOR(@testFloat*10) != @testFloat*10 THEN CONVERT(varchar(100), CAST(@testFloat AS decimal(38,2)))
WHEN FLOOR(@testFloat*100) != @testFloat*100 THEN CONVERT(varchar(100), CAST(@testFloat AS decimal(38,3)))
*etc*
END
很确定我什至没有走在正确的道路上....
Jeroen 的评论很有帮助,让我表达了我想要的结果:
select FORMAT([sampleField], '0.' + REPLICATE('#', 308))
我想我只需要将“308”降低到一个代表我们流程中最高精确度的数字。感谢 Jeroen 提供的解决方案!
我有一列包含非常大的值集 (>21k),小数位数不确定,存在一些示例数据 (FLOAT):
6.46
0.784
8.05
86.4
2.64
0
2.14
1E-06
14.81
3.45
0.87243
0
1.12279
0
21.41
0.6243
我想 return 除了“1E-06”之外的所有值都应该是 .000001;此外,任何科学计数法都应采用纯十进制格式。
我曾尝试编写某种 CASE 语句,其中 "THEN" 后跟 "CONVERT(varchar(100), CAST(@testFloat AS decimal(38,x)))",其中 x 是信号图的数量,但是我无法获得 WHEN 语句的正确条件,这是我最好的尝试:
CASE
WHEN @testFloat = 0 THEN @testFloat
WHEN FLOOR(@testFloat*10) != @testFloat*10 THEN CONVERT(varchar(100), CAST(@testFloat AS decimal(38,2)))
WHEN FLOOR(@testFloat*100) != @testFloat*100 THEN CONVERT(varchar(100), CAST(@testFloat AS decimal(38,3)))
*etc*
END
很确定我什至没有走在正确的道路上....
Jeroen 的评论很有帮助,让我表达了我想要的结果:
select FORMAT([sampleField], '0.' + REPLICATE('#', 308))
我想我只需要将“308”降低到一个代表我们流程中最高精确度的数字。感谢 Jeroen 提供的解决方案!