W SQL Server funkcja T-SQL LOG()
function to funkcja matematyczna, która zwraca logarytm naturalny określonego wyrażenia zmiennoprzecinkowego.
Jako argument podajesz wyrażenie zmiennoprzecinkowe. Możesz również podać drugi (opcjonalny) argument, aby ustawić podstawę logarytmu.
Składnia
Składnia wygląda tak:
LOG ( float_expression [, base ] )
Gdzie float_expression jest wyrażeniem typu float lub typu, który można niejawnie przekonwertować na float, a base jest opcjonalnym argumentem będącym liczbą całkowitą, który ustala podstawę logarytmu.
Przykład 1 – Jeden argument
Oto podstawowy przykład demonstrujący działanie tej funkcji przy użyciu jednego argumentu.
SELECT LOG(10) Result;
Wynik:
+------------------+ | Result | |------------------| | 2.30258509299405 | +------------------+
A oto kolejny przykład z użyciem innej wartości.
SELECT LOG(0.5) Result;
Wynik:
+--------------------+ | Result | |--------------------| | -0.693147180559945 | +--------------------+
Przykład 2 – Wartość ujemna
Oto przykład przekazywania wartości ujemnej.
SELECT LOG(-10) Result;
Wynik:
Msg 3623, Level 16, State 1, Line 1 An invalid floating point operation occurred.
Ten przykład zwraca błąd, ponieważ logarytm można zwrócić tylko dla liczb dodatnich, które nie są 1.
Przykład 3 – Zero
Oto przykład przekazania zera jako argumentu (otrzymujemy ten sam wynik, co w poprzednim przykładzie).
SELECT LOG(0) Result;
Wynik:
Msg 3623, Level 16, State 1, Line 1 An invalid floating point operation occurred.
Przykład 4 – Podanie w 1
Jeśli przekażesz wartość 1, otrzymasz zero.
SELECT LOG(1) Result;
Wynik:
+----------+ | Result | |----------| | 0 | +----------+
Przykład 5 – Wyrażenia
Możesz przekazywać wyrażenia takie jak:
SELECT LOG(2+3) Result;
Wynik:
+-----------------+ | Result | |-----------------| | 1.6094379124341 | +-----------------+
To właściwie to samo, co zrobienie tego:
SELECT LOG(5) Result;
Wynik:
+-----------------+ | Result | |-----------------| | 1.6094379124341 | +-----------------+
Przykład 6 – Dwa argumenty
Oto przykład pokazujący, jak ta funkcja działa, używając dwóch argumentów.
SELECT LOG(10, 100) Result;
Wynik:
+----------+ | Result | |----------| | 0.5 | +----------+
I używając innego przykładu:
SELECT LOG(100, 10) Result;
Wynik:
+----------+ | Result | |----------| | 2 | +----------+
Jeśli znasz wersję MySQL funkcji LOG()
, zauważysz, że dwuargumentowa składnia używa kolejności odwrotnej do wersji T-SQL (tj. podstawa jest na pierwszym miejscu).
Przykład 7 – Korzystanie z podstawy 1
Jeśli używasz 1
jako podstawa, otrzymasz błąd.
SELECT LOG(10, 1) Result;
Wynik:
Msg 3623, Level 16, State 1, Line 1 An invalid floating point operation occurred.
To samo, jeśli pierwszy argument jest równy zero lub mniej:
SELECT LOG(0, 10) Result;
Wynik:
Msg 3623, Level 16, State 1, Line 1 An invalid floating point operation occurred.
T-SQL ma również funkcję EXP()
funkcja będąca odwrotnością funkcji LOG()
funkcja.
Możesz także użyć LOG10()
funkcja, która zwraca logarytm dziesiętny określonego wyrażenia zmiennoprzecinkowego. Używanie tej funkcji jest takie samo jak przekazywanie w 10
jako drugi argument LOG()
funkcja.