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 ] )
Où 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.