No SQL Server, o T-SQL
LOG10()
function é uma função matemática que retorna o logaritmo de base 10 da expressão float especificada. Você especifica a expressão float como um argumento.
Sintaxe
A sintaxe fica assim:
LOG10 (expressão_flutuante)
Onde float_expression é uma expressão do tipo float ou de um tipo que pode ser convertido implicitamente em float.
Exemplo 1 – Uso básico
Aqui está um exemplo básico para demonstrar como essa função funciona.
SELECIONAR LOG10(10) Resultado;
Resultado:
+----------+| Resultado ||----------|| 1 |+----------+
E aqui está outro exemplo usando vários valores.
SELECT LOG10(100) '100', LOG10(1000) '1000', LOG10(3000) '3000', LOG10(10000) '10000';
Resultado:
+-------+--------+------------------+---------+ | 100 | 1000 | 3000 | 10000 ||-------+--------+------------------+---------|| 2 | 3 | 3.47712125471966 | 4 |+-------+--------+------------------+-----+Exemplo 2 - Valor Negativo
Aqui está um exemplo de passagem de um valor negativo.
SELECIONAR LOG10(-4) Resultado;
Resultado:
Msg 3623, Level 16, State 1, Line 1Ocorreu uma operação de ponto flutuante inválida.
Este exemplo retorna uma mensagem de 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).
SELECIONAR LOG10(0) Resultado;
Resultado:
Msg 3623, Level 16, State 1, Line 1Ocorreu uma operação de ponto flutuante inválida.Exemplo 4 – Passando em 1
Passar um valor de 1 retorna zero.
SELECIONAR LOG10(1) Resultado;
Resultado:
+----------+| Resultado ||----------|| 0 |+----------+Exemplo 5 – Expressões
Você também pode passar expressões como esta:
SELECIONAR LOG10(5*2) Resultado;
Resultado:
+----------+| Resultado ||----------|| 1 |+----------+
Isso é efetivamente o mesmo que fazer isso:
SELECIONAR LOG10(10) Resultado;
Resultado:
+----------+| Resultado ||----------|| 1 |+----------+LOG()
Transact-SQL também tem oLOG()
função que retorna o logaritmo natural de um número.
Na verdade, você pode usarLOG()
em vez deLOG10()
se você preferir. Para fazer isso, use10
como o segundo argumento para a função. Exemplo abaixo.
SELECT LOG(100, 10) 'LOG', LOG10(100) 'LOG10';
Resultado:
+-------+---------+| LOG | LOG10 ||-------+---------|| 2 | 2 |+-------+---------+