В SQL Server, T-SQL LOG()
функцията е математическа функция, която връща естествения логаритъм на посочения float израз.
Посочвате израза float като аргумент. Можете също да предоставите втори (по избор) аргумент, за да зададете основата за логаритъма.
Синтаксис
Синтаксисът е така:
LOG ( float_expression [, base ] )
Където float_expression е израз на тип float или на тип, който може да бъде имплицитно преобразуван в float, и base е незадължителен целочислен аргумент, който задава основата за логаритъма.
Пример 1 – Един аргумент
Ето основен пример, за да демонстрирате как работи тази функция с един аргумент.
SELECT LOG(10) Result;
Резултат:
+------------------+ | Result | |------------------| | 2.30258509299405 | +------------------+
И ето още един пример, използващ различна стойност.
SELECT LOG(0.5) Result;
Резултат:
+--------------------+ | Result | |--------------------| | -0.693147180559945 | +--------------------+
Пример 2 – Отрицателна стойност
Ето пример за предаване на отрицателна стойност.
SELECT LOG(-10) Result;
Резултат:
Msg 3623, Level 16, State 1, Line 1 An invalid floating point operation occurred.
Този пример връща грешка, тъй като логаритъмът може да бъде върнат само за положителни числа, които не са 1.
Пример 3 – нула
Ето пример за предаване на нула като аргумент (получаваме същия резултат като предишния пример).
SELECT LOG(0) Result;
Резултат:
Msg 3623, Level 16, State 1, Line 1 An invalid floating point operation occurred.
Пример 4 – Предаване в 1
Ако предадете стойност 1, ще получите нула.
SELECT LOG(1) Result;
Резултат:
+----------+ | Result | |----------| | 0 | +----------+
Пример 5 – Изрази
Можете да предавате изрази като този:
SELECT LOG(2+3) Result;
Резултат:
+-----------------+ | Result | |-----------------| | 1.6094379124341 | +-----------------+
Това всъщност е същото като да направите това:
SELECT LOG(5) Result;
Резултат:
+-----------------+ | Result | |-----------------| | 1.6094379124341 | +-----------------+
Пример 6 – Два аргумента
Ето пример, за да демонстрирате как работи тази функция с два аргумента.
SELECT LOG(10, 100) Result;
Резултат:
+----------+ | Result | |----------| | 0.5 | +----------+
И използвайки друг пример:
SELECT LOG(100, 10) Result;
Резултат:
+----------+ | Result | |----------| | 2 | +----------+
Ако сте запознати с MySQL версията на LOG()
, ще забележите, че синтаксисът с два аргумента използва обратния ред на T-SQL версията (т.е. базата е на първо място).
Пример 7 – Използване на база от 1
Ако използвате 1
като база, ще получите грешка.
SELECT LOG(10, 1) Result;
Резултат:
Msg 3623, Level 16, State 1, Line 1 An invalid floating point operation occurred.
Същото, ако първият аргумент е равен на нула или по-малко:
SELECT LOG(0, 10) Result;
Резултат:
Msg 3623, Level 16, State 1, Line 1 An invalid floating point operation occurred.
T-SQL също има EXP()
функция, която е обратна на LOG()
функция.
Можете също да използвате LOG10()
функция, която връща логаритъма с база 10 на посочения израз с плаваща стойност. Използването на тази функция е същото като предаването на 10
като втори аргумент на LOG()
функция.