I SQL Server, T-SQL LOG()
funktion er en matematisk funktion, der returnerer den naturlige logaritme af det angivne flydende udtryk.
Du angiver float-udtrykket som et argument. Du kan også angive et andet (valgfrit) argument for at sætte basis for logaritmen.
Syntaks
Syntaksen ser sådan ud:
LOG ( float_expression [, base ] )
Hvor float_expression er et udtryk for type float eller af en type, der implicit kan konverteres til float, og base er et valgfrit heltalsargument, der sætter basis for logaritmen.
Eksempel 1 – Et argument
Her er et grundlæggende eksempel for at demonstrere, hvordan denne funktion fungerer ved hjælp af et argument.
SELECT LOG(10) Result;
Resultat:
+------------------+ | Result | |------------------| | 2.30258509299405 | +------------------+
Og her er endnu et eksempel med en anden værdi.
SELECT LOG(0.5) Result;
Resultat:
+--------------------+ | Result | |--------------------| | -0.693147180559945 | +--------------------+
Eksempel 2 – Negativ værdi
Her er et eksempel på indtastning af en negativ værdi.
SELECT LOG(-10) Result;
Resultat:
Msg 3623, Level 16, State 1, Line 1 An invalid floating point operation occurred.
Dette eksempel returnerer en fejl, fordi logaritmen kun kan returneres for positive tal, der ikke er 1.
Eksempel 3 – Nul
Her er et eksempel på at sende nul som argument (vi får det samme resultat som det forrige eksempel).
SELECT LOG(0) Result;
Resultat:
Msg 3623, Level 16, State 1, Line 1 An invalid floating point operation occurred.
Eksempel 4 – Beståelse 1
Hvis du giver en værdi på 1, ender du med nul.
SELECT LOG(1) Result;
Resultat:
+----------+ | Result | |----------| | 0 | +----------+
Eksempel 5 – Udtryk
Du kan sende udtryk som dette:
SELECT LOG(2+3) Result;
Resultat:
+-----------------+ | Result | |-----------------| | 1.6094379124341 | +-----------------+
Det er faktisk det samme som at gøre dette:
SELECT LOG(5) Result;
Resultat:
+-----------------+ | Result | |-----------------| | 1.6094379124341 | +-----------------+
Eksempel 6 – To argumenter
Her er et eksempel for at demonstrere, hvordan denne funktion fungerer ved hjælp af to argumenter.
SELECT LOG(10, 100) Result;
Resultat:
+----------+ | Result | |----------| | 0.5 | +----------+
Og ved at bruge et andet eksempel:
SELECT LOG(100, 10) Result;
Resultat:
+----------+ | Result | |----------| | 2 | +----------+
Hvis du er bekendt med MySQL-versionen af LOG()
, vil du bemærke, at to-argumentsyntaksen bruger den modsatte rækkefølge af T-SQL-versionen (dvs. basen kommer først).
Eksempel 7 – Brug af en base på 1
Hvis du bruger 1
som base, får du en fejl.
SELECT LOG(10, 1) Result;
Resultat:
Msg 3623, Level 16, State 1, Line 1 An invalid floating point operation occurred.
Samme hvis det første argument er lig med nul 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 også EXP()
funktion, der er det omvendte af LOG()
funktion.
Du kan også bruge LOG10()
funktion, som returnerer base-10-logaritmen for det angivne flydende udtryk. Brug af denne funktion er det samme som at indtaste 10
som det andet argument til LOG()
funktion.