У меня есть столбец с чрезвычайно большим набором значений (> 21 КБ), с неопределенным количеством десятичных разрядов, некоторые примеры данных (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
Я хотел бы вернутьвсе значения, как показано, за исключением "1E-06", должны быть .000001;кроме того, любая научная запись должна быть в чисто десятичном формате.
Я пытался написать какой-то оператор CASE, в котором за THEN следует "CONVERT (varchar (100), CAST (@testFloat AS").десятичное число (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
Уверен, я даже не на правильном пути ....