Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

LOG() Przykłady w SQL Server

W SQL Server funkcja T-SQL LOG() function to funkcja matematyczna, która zwraca logarytm naturalny określonego wyrażenia zmiennoprzecinkowego.

Jako argument podajesz wyrażenie zmiennoprzecinkowe. Możesz również podać drugi (opcjonalny) argument, aby ustawić podstawę logarytmu.

Składnia

Składnia wygląda tak:

LOG ( float_expression [, base ] )  

Gdzie float_expression jest wyrażeniem typu float lub typu, który można niejawnie przekonwertować na float, a base jest opcjonalnym argumentem będącym liczbą całkowitą, który ustala podstawę logarytmu.

Przykład 1 – Jeden argument

Oto podstawowy przykład demonstrujący działanie tej funkcji przy użyciu jednego argumentu.

SELECT LOG(10) Result;

Wynik:

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

A oto kolejny przykład z użyciem innej wartości.

SELECT LOG(0.5) Result;

Wynik:

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

Przykład 2 – Wartość ujemna

Oto przykład przekazywania wartości ujemnej.

SELECT LOG(-10) Result;

Wynik:

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

Ten przykład zwraca błąd, ponieważ logarytm można zwrócić tylko dla liczb dodatnich, które nie są 1.

Przykład 3 – Zero

Oto przykład przekazania zera jako argumentu (otrzymujemy ten sam wynik, co w poprzednim przykładzie).

SELECT LOG(0) Result;

Wynik:

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

Przykład 4 – Podanie w 1

Jeśli przekażesz wartość 1, otrzymasz zero.

SELECT LOG(1) Result;

Wynik:

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

Przykład 5 – Wyrażenia

Możesz przekazywać wyrażenia takie jak:

SELECT LOG(2+3) Result;

Wynik:

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

To właściwie to samo, co zrobienie tego:

SELECT LOG(5) Result;

Wynik:

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

Przykład 6 – Dwa argumenty

Oto przykład pokazujący, jak ta funkcja działa, używając dwóch argumentów.

SELECT LOG(10, 100) Result;

Wynik:

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

I używając innego przykładu:

SELECT LOG(100, 10) Result;

Wynik:

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

Jeśli znasz wersję MySQL funkcji LOG() , zauważysz, że dwuargumentowa składnia używa kolejności odwrotnej do wersji T-SQL (tj. podstawa jest na pierwszym miejscu).

Przykład 7 – Korzystanie z podstawy 1

Jeśli używasz 1 jako podstawa, otrzymasz błąd.

SELECT LOG(10, 1) Result;

Wynik:

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

To samo, jeśli pierwszy argument jest równy zero lub mniej:

SELECT LOG(0, 10) Result;

Wynik:

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

T-SQL ma również funkcję EXP() funkcja będąca odwrotnością funkcji LOG() funkcja.

Możesz także użyć LOG10() funkcja, która zwraca logarytm dziesiętny określonego wyrażenia zmiennoprzecinkowego. Używanie tej funkcji jest takie samo jak przekazywanie w 10 jako drugi argument LOG() funkcja.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. CLR Strict Security w SQL Server 2017

  2. Czy można zapisać wartość jednej wybranej kolumny i użyć jej w następnej?

  3. Jak wyświetlić zapytanie i wyniki w oddzielnej karcie w SQL Server Management Studio (SSMS) — samouczek SQL Server / TSQL, część 15

  4. Scal nakładające się interwały dat

  5. Na liście wyboru można podać tylko jedno wyrażenie, gdy podzapytanie nie jest wprowadzone z opcją EXISTS