Я пытаюсь создать таблицу, содержащую значения 10^(existing_field_value / 10)
.Я могу воссоздать проблему с помощью следующей упрощенной таблицы:
Date, Time, Timer, Overall_Spectra, 6_3_Hz, 20_Hz
10/23/2018, 12:24:13, 0:19:59, 69.7, -17.4, 8.9
10/23/2018, 12:24:14, 0:19:58, 70.8, -31.1, 4.4
10/23/2018, 12:24:15, 0:19:57, 70.7, -28.9, 4.8
10/23/2018, 12:24:16, 0:19:56, 69.0, -27.0, 5.9
Данные были импортированы из плоского текстового файла со следующими типами данных:
Date, date
Time, time(0)
Timer, time(0)
Overall_Spectra, decimal(3,1)
6_3_Hz, decimal(3,1)
20_Hz, decimal(3,1)
Использование оператора T-SQLниже я смог закомментировать 2 из 3 указанных полей одновременно.При этом желаемые результаты возвращаются для полей 6_3_Hz и 20_Hz, но для поля Total_Spectra возвращает SSMS:
select
POWER(10.000000000000000000000000000000000000,Overall_Spectra/10)
POWER(10.000000000000000000000000000000000000,"6_3_Hz"/10)
Power(10.000000000000000000000000000000000000,"20_Hz"/10)
from sound;
Msg 8115, Level 16, State 6, Line 1
Arithmetic overflow error converting float to data type numeric.
Я ссылался на следующую документацию MS в попытке понять, что происходит (в частности,таблица типов возвращаемых данных), но безрезультатно:
https://docs.microsoft.com/en-us/sql/t-sql/functions/power-transact-sql?view=sql-server-2017
Я запутался в вопросе, когда SQL использует тип данных с плавающей запятой, поскольку это, кажется, в некотором родепричина ошибки.Буду очень признателен за понимание того, что делает SQL, или о том, что я делаю безумно! !!