Sqlserver
 sql >> Base de Dados >  >> RDS >> Sqlserver

LOG() Exemplos no SQL Server


No SQL Server, o T-SQL LOG() function é uma função matemática que retorna o logaritmo natural da expressão float especificada.

Você especifica a expressão float como um argumento. Você também pode fornecer um segundo argumento (opcional) para definir a base do logaritmo.


Sintaxe


A sintaxe fica assim:
LOG ( float_expression [, base ] )  

Onde float_expression é uma expressão do tipo float ou de um tipo que pode ser convertido implicitamente em float, e base é um argumento inteiro opcional que define a base para o logaritmo.

Exemplo 1 – Um argumento


Aqui está um exemplo básico para demonstrar como essa função funciona usando um argumento.
SELECT LOG(10) Result;

Resultado:
+------------------+
| Result           |
|------------------|
| 2.30258509299405 |
+------------------+

E aqui está outro exemplo usando um valor diferente.
SELECT LOG(0.5) Result;

Resultado:
+--------------------+
| Result             |
|--------------------|
| -0.693147180559945 |
+--------------------+

Exemplo 2 - Valor Negativo


Aqui está um exemplo de passagem de um valor negativo.
SELECT LOG(-10) Result;

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

Este exemplo retorna um erro porque o logaritmo só pode ser retornado para números positivos que não sejam 1.

Exemplo 3 – Zero


Aqui está um exemplo de passagem de zero como argumento (obtemos o mesmo resultado do exemplo anterior).
SELECT LOG(0) Result;

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

Exemplo 4 – Passando em 1


Se você passar um valor de 1, você termina com zero.
SELECT LOG(1) Result;

Resultado:
+----------+
| Result   |
|----------|
| 0        |
+----------+

Exemplo 5 – Expressões


Você pode passar em expressões como esta:
SELECT LOG(2+3) Result;

Resultado:
+-----------------+
| Result          |
|-----------------|
| 1.6094379124341 |
+-----------------+

Isso é efetivamente o mesmo que fazer isso:
SELECT LOG(5) Result;

Resultado:
+-----------------+
| Result          |
|-----------------|
| 1.6094379124341 |
+-----------------+

Exemplo 6 – Dois argumentos


Aqui está um exemplo para demonstrar como essa função funciona usando dois argumentos.
SELECT LOG(10, 100) Result;

Resultado:
+----------+
| Result   |
|----------|
| 0.5      |
+----------+

E usando outro exemplo:
SELECT LOG(100, 10) Result;

Resultado:
+----------+
| Result   |
|----------|
| 2        |
+----------+

Se você estiver familiarizado com a versão MySQL de LOG() , você notará que a sintaxe de dois argumentos usa a ordem oposta à versão T-SQL (ou seja, a base vem primeiro).

Exemplo 7 – Usando uma base de 1


Se você usar 1 como base, você receberá um erro.
SELECT LOG(10, 1) Result;

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

O mesmo se o primeiro argumento for igual a zero ou menos:
SELECT LOG(0, 10) Result;

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

T-SQL também tem o EXP() função que é o inverso do LOG() função.

Você também pode usar o LOG10() função, que retorna o logaritmo de base 10 da expressão float especificada. Usar esta função é o mesmo que passar 10 como o segundo argumento para o LOG() função.