In SQL Server, il LOG()
di T-SQL function è una funzione matematica che restituisce il logaritmo naturale dell'espressione float specificata.
Specificare l'espressione float come argomento. Puoi anche fornire un secondo argomento (facoltativo) per impostare la base per il logaritmo.
Sintassi
La sintassi è questa:
LOG ( float_expression [, base ] )
Dove espressione_flottante è un'espressione di tipo float o di un tipo che può essere convertito in modo implicito in float e base è un argomento intero facoltativo che imposta la base per il logaritmo.
Esempio 1 – Un argomento
Ecco un esempio di base per dimostrare come funziona questa funzione utilizzando un argomento.
SELECT LOG(10) Result;
Risultato:
+------------------+ | Result | |------------------| | 2.30258509299405 | +------------------+
Ed ecco un altro esempio che utilizza un valore diverso.
SELECT LOG(0.5) Result;
Risultato:
+--------------------+ | Result | |--------------------| | -0.693147180559945 | +--------------------+
Esempio 2 – Valore negativo
Ecco un esempio di passaggio di un valore negativo.
SELECT LOG(-10) Result;
Risultato:
Msg 3623, Level 16, State 1, Line 1 An invalid floating point operation occurred.
Questo esempio restituisce un errore perché il logaritmo può essere restituito solo per numeri positivi diversi da 1.
Esempio 3 – Zero
Ecco un esempio di passaggio di zero come argomento (otteniamo lo stesso risultato dell'esempio precedente).
SELECT LOG(0) Result;
Risultato:
Msg 3623, Level 16, State 1, Line 1 An invalid floating point operation occurred.
Esempio 4 – Passaggio 1
Se passi un valore di 1, finisci con zero.
SELECT LOG(1) Result;
Risultato:
+----------+ | Result | |----------| | 0 | +----------+
Esempio 5 – Espressioni
Puoi passare espressioni come questa:
SELECT LOG(2+3) Result;
Risultato:
+-----------------+ | Result | |-----------------| | 1.6094379124341 | +-----------------+
Questo è effettivamente lo stesso di fare questo:
SELECT LOG(5) Result;
Risultato:
+-----------------+ | Result | |-----------------| | 1.6094379124341 | +-----------------+
Esempio 6 – Due argomenti
Ecco un esempio per dimostrare come funziona questa funzione utilizzando due argomenti.
SELECT LOG(10, 100) Result;
Risultato:
+----------+ | Result | |----------| | 0.5 | +----------+
E usando un altro esempio:
SELECT LOG(100, 10) Result;
Risultato:
+----------+ | Result | |----------| | 2 | +----------+
Se hai familiarità con la versione MySQL di LOG()
, noterai che la sintassi a due argomenti utilizza l'ordine opposto alla versione T-SQL (ovvero la base viene prima).
Esempio 7 – Utilizzo di una base di 1
Se usi 1
come base, riceverai un errore.
SELECT LOG(10, 1) Result;
Risultato:
Msg 3623, Level 16, State 1, Line 1 An invalid floating point operation occurred.
Uguale se il primo argomento è uguale a zero o meno:
SELECT LOG(0, 10) Result;
Risultato:
Msg 3623, Level 16, State 1, Line 1 An invalid floating point operation occurred.
T-SQL ha anche EXP()
funzione che è l'inverso di LOG()
funzione.
Puoi anche usare il LOG10()
funzione, che restituisce il logaritmo in base 10 dell'espressione float specificata. Usare questa funzione equivale a passare 10
come secondo argomento del LOG()
funzione.