V SQL Serveru T-SQL LOG()
funkce je matematická funkce, která vrací přirozený logaritmus zadaného výrazu float.
Jako argument zadáte výraz float. Můžete také zadat druhý (volitelný) argument pro nastavení základu pro logaritmus.
Syntaxe
Syntaxe vypadá takto:
LOG ( float_expression [, base ] )
Kde float_expression je výraz typu float nebo typu, který lze implicitně převést na float, a base je volitelný celočíselný argument, který nastavuje základ pro logaritmus.
Příklad 1 – Jeden argument
Zde je základní příklad, který demonstruje, jak tato funkce funguje pomocí jednoho argumentu.
SELECT LOG(10) Result;
Výsledek:
+------------------+ | Result | |------------------| | 2.30258509299405 | +------------------+
A zde je další příklad s použitím jiné hodnoty.
SELECT LOG(0.5) Result;
Výsledek:
+--------------------+ | Result | |--------------------| | -0.693147180559945 | +--------------------+
Příklad 2 – Záporná hodnota
Zde je příklad předání záporné hodnoty.
SELECT LOG(-10) Result;
Výsledek:
Msg 3623, Level 16, State 1, Line 1 An invalid floating point operation occurred.
Tento příklad vrací chybu, protože logaritmus lze vrátit pouze pro kladná čísla, která nejsou 1.
Příklad 3 – nula
Zde je příklad předání nuly jako argumentu (dostaneme stejný výsledek jako v předchozím příkladu).
SELECT LOG(0) Result;
Výsledek:
Msg 3623, Level 16, State 1, Line 1 An invalid floating point operation occurred.
Příklad 4 – Předání za 1
Pokud předáte hodnotu 1, skončíte s nulou.
SELECT LOG(1) Result;
Výsledek:
+----------+ | Result | |----------| | 0 | +----------+
Příklad 5 – Výrazy
Můžete předat výrazy jako je tento:
SELECT LOG(2+3) Result;
Výsledek:
+-----------------+ | Result | |-----------------| | 1.6094379124341 | +-----------------+
To je v podstatě stejné jako toto:
SELECT LOG(5) Result;
Výsledek:
+-----------------+ | Result | |-----------------| | 1.6094379124341 | +-----------------+
Příklad 6 – Dva argumenty
Zde je příklad demonstrující, jak tato funkce funguje pomocí dvou argumentů.
SELECT LOG(10, 100) Result;
Výsledek:
+----------+ | Result | |----------| | 0.5 | +----------+
A pomocí dalšího příkladu:
SELECT LOG(100, 10) Result;
Výsledek:
+----------+ | Result | |----------| | 2 | +----------+
Pokud znáte verzi MySQL LOG()
, všimnete si, že syntaxe dvou argumentů používá opačné pořadí než verze T-SQL (tj. základ je na prvním místě).
Příklad 7 – Použití základu 1
Pokud použijete 1
jako základ se zobrazí chyba.
SELECT LOG(10, 1) Result;
Výsledek:
Msg 3623, Level 16, State 1, Line 1 An invalid floating point operation occurred.
Totéž, pokud je první argument roven nule nebo méně:
SELECT LOG(0, 10) Result;
Výsledek:
Msg 3623, Level 16, State 1, Line 1 An invalid floating point operation occurred.
T-SQL má také EXP()
funkce, která je inverzní k LOG()
funkce.
Můžete také použít LOG10()
funkce, která vrací základní-10 logaritmus zadaného výrazu float. Použití této funkce je stejné jako předání 10
jako druhý argument pro LOG()
funkce.