Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

LOG()-Beispiele in SQL Server

In SQL Server das T-SQL LOG() Funktion ist eine mathematische Funktion, die den natürlichen Logarithmus des angegebenen Float-Ausdrucks zurückgibt.

Sie geben den Float-Ausdruck als Argument an. Sie können auch ein zweites (optionales) Argument angeben, um die Basis für den Logarithmus festzulegen.

Syntax

Die Syntax lautet wie folgt:

LOG ( float_expression [, base ] )  

Wobei float_expression ist ein Ausdruck vom Typ Float oder von einem Typ, der implizit in Float konvertiert werden kann, und base ist ein optionales Integer-Argument, das die Basis für den Logarithmus festlegt.

Beispiel 1 – Ein Argument

Hier ist ein einfaches Beispiel, um zu demonstrieren, wie diese Funktion mit einem Argument funktioniert.

SELECT LOG(10) Result;

Ergebnis:

+------------------+
| Result           |
|------------------|
| 2.30258509299405 |
+------------------+

Und hier ist ein weiteres Beispiel mit einem anderen Wert.

SELECT LOG(0.5) Result;

Ergebnis:

+--------------------+
| Result             |
|--------------------|
| -0.693147180559945 |
+--------------------+

Beispiel 2 – Negativer Wert

Hier ist ein Beispiel für die Übergabe eines negativen Werts.

SELECT LOG(-10) Result;

Ergebnis:

Msg 3623, Level 16, State 1, Line 1
An invalid floating point operation occurred.

Dieses Beispiel gibt einen Fehler zurück, da der Logarithmus nur für positive Zahlen zurückgegeben werden kann, die nicht 1 sind.

Beispiel 3 – Null

Hier ist ein Beispiel für die Übergabe von Null als Argument (wir erhalten das gleiche Ergebnis wie im vorherigen Beispiel).

SELECT LOG(0) Result;

Ergebnis:

Msg 3623, Level 16, State 1, Line 1
An invalid floating point operation occurred.

Beispiel 4 – 1 übergeben

Wenn Sie einen Wert von 1 übergeben, erhalten Sie null.

SELECT LOG(1) Result;

Ergebnis:

+----------+
| Result   |
|----------|
| 0        |
+----------+

Beispiel 5 – Ausdrücke

Sie können Ausdrücke wie diesen übergeben:

SELECT LOG(2+3) Result;

Ergebnis:

+-----------------+
| Result          |
|-----------------|
| 1.6094379124341 |
+-----------------+

Das ist im Grunde das Gleiche wie:

SELECT LOG(5) Result;

Ergebnis:

+-----------------+
| Result          |
|-----------------|
| 1.6094379124341 |
+-----------------+

Beispiel 6 – Zwei Argumente

Hier ist ein Beispiel, um zu demonstrieren, wie diese Funktion mit zwei Argumenten funktioniert.

SELECT LOG(10, 100) Result;

Ergebnis:

+----------+
| Result   |
|----------|
| 0.5      |
+----------+

Und mit einem anderen Beispiel:

SELECT LOG(100, 10) Result;

Ergebnis:

+----------+
| Result   |
|----------|
| 2        |
+----------+

Wenn Sie mit der MySQL-Version von LOG() vertraut sind , werden Sie feststellen, dass die Zwei-Argument-Syntax die entgegengesetzte Reihenfolge zur T-SQL-Version verwendet (d. h. die Basis kommt zuerst).

Beispiel 7 – Verwendung einer Basis von 1

Wenn Sie 1 verwenden als Basis erhalten Sie eine Fehlermeldung.

SELECT LOG(10, 1) Result;

Ergebnis:

Msg 3623, Level 16, State 1, Line 1
An invalid floating point operation occurred.

Dasselbe gilt, wenn das erste Argument gleich Null oder kleiner ist:

SELECT LOG(0, 10) Result;

Ergebnis:

Msg 3623, Level 16, State 1, Line 1
An invalid floating point operation occurred.

T-SQL hat auch den EXP() Funktion, die das Gegenteil von LOG() ist Funktion.

Sie können auch LOG10() verwenden -Funktion, die den Basis-10-Logarithmus des angegebenen Float-Ausdrucks zurückgibt. Die Verwendung dieser Funktion entspricht der Übergabe von 10 als zweites Argument für LOG() Funktion.