I SQL Server, T-SQL LOG10()
funktion er en matematisk funktion, der returnerer base-10-logaritmen for det angivne flydende udtryk.
Du angiver float-udtrykket som et argument.
Syntaks
Syntaksen ser sådan ud:
LOG10 ( float_expression )
Hvor float_expression er et udtryk for type float eller af en type, der implicit kan konverteres til float.
Eksempel 1 – Grundlæggende brug
Her er et grundlæggende eksempel for at demonstrere, hvordan denne funktion fungerer.
SELECT LOG10(10) Result;
Resultat:
+----------+ | Result | |----------| | 1 | +----------+
Og her er endnu et eksempel, der bruger forskellige værdier.
SELECT LOG10(100) '100', LOG10(1000) '1000', LOG10(3000) '3000', LOG10(10000) '10000';
Resultat:
+-------+--------+------------------+---------+ | 100 | 1000 | 3000 | 10000 | |-------+--------+------------------+---------| | 2 | 3 | 3.47712125471966 | 4 | +-------+--------+------------------+---------+
Eksempel 2 – Negativ værdi
Her er et eksempel på indtastning af en negativ værdi.
SELECT LOG10(-4) Result;
Resultat:
Msg 3623, Level 16, State 1, Line 1 An invalid floating point operation occurred.
Dette eksempel returnerer en fejlmeddelelse, 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 LOG10(0) Result;
Resultat:
Msg 3623, Level 16, State 1, Line 1 An invalid floating point operation occurred.
Eksempel 4 – Beståelse 1
Indtastning af en værdi på 1 returnerer nul.
SELECT LOG10(1) Result;
Resultat:
+----------+ | Result | |----------| | 0 | +----------+
Eksempel 5 – Udtryk
Du kan også sende udtryk som dette:
SELECT LOG10(5*2) Result;
Resultat:
+----------+ | Result | |----------| | 1 | +----------+
Det er faktisk det samme som at gøre dette:
SELECT LOG10(10) Result;
Resultat:
+----------+ | Result | |----------| | 1 | +----------+
LOG()
Transact-SQL har også LOG()
funktion som returnerer den naturlige logaritme af et tal.
Faktisk kan du bruge LOG()
i stedet for LOG10()
hvis du foretrækker det. For at gøre dette skal du bruge 10
som det andet argument til funktionen. Eksempel nedenfor.
SELECT LOG(100, 10) 'LOG', LOG10(100) 'LOG10';
Resultat:
+-------+---------+ | LOG | LOG10 | |-------+---------| | 2 | 2 | +-------+---------+