sql >> Database teknologi >  >> RDS >> Sqlserver

LOG() Eksempler i SQL Server

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.


  1. N+1 redundans og serverkonsolidering

  2. Kan ikke indlæse DLL 'SqlServerSpatial.dll'

  3. Aktivering af TLS i Oracle Apps R12.2

  4. Pgryglæns gendannelsestidsmål