Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

LOG() Exemples dans SQL Server

Dans SQL Server, le T-SQL LOG() function est une fonction mathématique qui renvoie le logarithme népérien de l'expression flottante spécifiée.

Vous spécifiez l'expression float comme argument. Vous pouvez également fournir un deuxième argument (facultatif) pour définir la base du logarithme.

Syntaxe

La syntaxe ressemble à ceci :

LOG ( float_expression [, base ] )  

expression_float est une expression de type float ou d'un type qui peut être implicitement converti en float, et base est un argument entier facultatif qui définit la base du logarithme.

Exemple 1 – Un argument

Voici un exemple de base pour montrer comment cette fonction fonctionne en utilisant un argument.

SELECT LOG(10) Result;

Résultat :

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

Et voici un autre exemple utilisant une valeur différente.

SELECT LOG(0.5) Result;

Résultat :

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

Exemple 2 – Valeur négative

Voici un exemple de transmission d'une valeur négative.

SELECT LOG(-10) Result;

Résultat :

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

Cet exemple renvoie une erreur car le logarithme ne peut être renvoyé que pour les nombres positifs autres que 1.

Exemple 3 – Zéro

Voici un exemple de passage de zéro en argument (on obtient le même résultat que l'exemple précédent).

SELECT LOG(0) Result;

Résultat :

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

Exemple 4 - Passe en 1

Si vous transmettez une valeur de 1, vous vous retrouvez avec zéro.

SELECT LOG(1) Result;

Résultat :

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

Exemple 5 – Expressions

Vous pouvez transmettre des expressions comme celle-ci :

SELECT LOG(2+3) Result;

Résultat :

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

C'est effectivement la même chose que de faire ceci :

SELECT LOG(5) Result;

Résultat :

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

Exemple 6 – Deux arguments

Voici un exemple pour montrer comment cette fonction fonctionne en utilisant deux arguments.

SELECT LOG(10, 100) Result;

Résultat :

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

Et en utilisant un autre exemple :

SELECT LOG(100, 10) Result;

Résultat :

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

Si vous connaissez la version MySQL de LOG() , vous remarquerez que la syntaxe à deux arguments utilise l'ordre inverse de la version T-SQL (c'est-à-dire que la base vient en premier).

Exemple 7 - Utilisation d'une base de 1

Si vous utilisez 1 comme base, vous obtiendrez une erreur.

SELECT LOG(10, 1) Result;

Résultat :

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

Idem si le premier argument est égal à zéro ou moins :

SELECT LOG(0, 10) Result;

Résultat :

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

T-SQL a aussi le EXP() fonction inverse de LOG() fonction.

Vous pouvez également utiliser le LOG10() , qui renvoie le logarithme en base 10 de l'expression flottante spécifiée. L'utilisation de cette fonction revient à passer 10 comme second argument du LOG() fonction.