sql >> Databasteknik >  >> RDS >> Sqlserver

LOG() Exempel i SQL Server

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.


  1. Hur man kör en lagrad procedur i C#-programmet

  2. Hur man aktiverar Change Data Capture (CDC) på hela tabellen ELLER aktiverar CDC på bordet med lista över kolumner i SQL Server

  3. Bli tänd med Apache Spark – Del 1

  4. INFOGA I eller UPPDATERA med två villkor