I SQL Server, T-SQL LOG()
funktion är en matematisk funktion som returnerar den naturliga logaritmen för det angivna flytuttrycket.
Du anger float-uttrycket som ett argument. Du kan också ange ett andra (valfritt) argument för att ställa in basen för logaritmen.
Syntax
Syntaxen ser ut så här:
LOG ( float_expression [, base ] )
Där float_expression är ett uttryck för typen float eller av en typ som implicit kan konverteras till float, och bas är ett valfritt heltalsargument som anger basen för logaritmen.
Exempel 1 – Ett argument
Här är ett grundläggande exempel för att visa hur den här funktionen fungerar med ett argument.
SELECT LOG(10) Result;
Resultat:
+------------------+ | Result | |------------------| | 2.30258509299405 | +------------------+
Och här är ett annat exempel med ett annat värde.
SELECT LOG(0.5) Result;
Resultat:
+--------------------+ | Result | |--------------------| | -0.693147180559945 | +--------------------+
Exempel 2 – Negativt värde
Här är ett exempel på att skicka in ett negativt värde.
SELECT LOG(-10) Result;
Resultat:
Msg 3623, Level 16, State 1, Line 1 An invalid floating point operation occurred.
Det här exemplet returnerar ett fel eftersom logaritmen endast kan returneras för positiva tal som inte är 1.
Exempel 3 – Noll
Här är ett exempel på att skicka in noll som argument (vi får samma resultat som föregående exempel).
SELECT LOG(0) Result;
Resultat:
Msg 3623, Level 16, State 1, Line 1 An invalid floating point operation occurred.
Exempel 4 – Godkänd 1
Om du skickar in ett värde på 1, hamnar du på noll.
SELECT LOG(1) Result;
Resultat:
+----------+ | Result | |----------| | 0 | +----------+
Exempel 5 – Uttryck
Du kan skicka in uttryck som detta:
SELECT LOG(2+3) Result;
Resultat:
+-----------------+ | Result | |-----------------| | 1.6094379124341 | +-----------------+
Det är i praktiken samma sak som att göra det här:
SELECT LOG(5) Result;
Resultat:
+-----------------+ | Result | |-----------------| | 1.6094379124341 | +-----------------+
Exempel 6 – Två argument
Här är ett exempel för att visa hur den här funktionen fungerar med två argument.
SELECT LOG(10, 100) Result;
Resultat:
+----------+ | Result | |----------| | 0.5 | +----------+
Och med ett annat exempel:
SELECT LOG(100, 10) Result;
Resultat:
+----------+ | Result | |----------| | 2 | +----------+
Om du är bekant med MySQL-versionen av LOG()
, kommer du att märka att syntaxen med två argument använder motsatt ordning till T-SQL-versionen (dvs. basen kommer först).
Exempel 7 – Använda en bas på 1
Om du använder 1
som bas får du ett felmeddelande.
SELECT LOG(10, 1) Result;
Resultat:
Msg 3623, Level 16, State 1, Line 1 An invalid floating point operation occurred.
Samma om det första argumentet är lika med noll eller mindre:
SELECT LOG(0, 10) Result;
Resultat:
Msg 3623, Level 16, State 1, Line 1 An invalid floating point operation occurred.
T-SQL har också EXP()
funktion som är inversen av LOG()
funktion.
Du kan också använda LOG10()
funktion, som returnerar bas-10-logaritmen för det angivna flytuttrycket. Att använda den här funktionen är detsamma som att skicka in 10
som det andra argumentet till LOG()
funktion.