Trong SQL Server, T-SQL LOG()
function là một hàm toán học trả về logarit tự nhiên của biểu thức float đã chỉ định.
Bạn chỉ định biểu thức float làm đối số. Bạn cũng có thể cung cấp đối số thứ hai (tùy chọn) để đặt cơ số cho lôgarit.
Cú pháp
Cú pháp như sau:
LOG ( float_expression [, base ] )
Trong đó float_expression là một biểu thức của kiểu float hoặc kiểu có thể được chuyển đổi hoàn toàn thành float và base là một đối số số nguyên tùy chọn đặt cơ số cho lôgarit.
Ví dụ 1 - Một đối số
Dưới đây là một ví dụ cơ bản để chứng minh cách hàm này hoạt động bằng cách sử dụng một đối số.
SELECT LOG(10) Result;
Kết quả:
+------------------+ | Result | |------------------| | 2.30258509299405 | +------------------+
Và đây là một ví dụ khác sử dụng một giá trị khác.
SELECT LOG(0.5) Result;
Kết quả:
+--------------------+ | Result | |--------------------| | -0.693147180559945 | +--------------------+
Ví dụ 2 - Giá trị âm
Dưới đây là một ví dụ về việc chuyển một giá trị âm.
SELECT LOG(-10) Result;
Kết quả:
Msg 3623, Level 16, State 1, Line 1 An invalid floating point operation occurred.
Ví dụ này trả về lỗi vì chỉ có thể trả về lôgarit cho các số dương không phải là 1.
Ví dụ 3 - Số không
Dưới đây là một ví dụ về việc chuyển 0 làm đối số (chúng tôi nhận được kết quả tương tự như ví dụ trước).
SELECT LOG(0) Result;
Kết quả:
Msg 3623, Level 16, State 1, Line 1 An invalid floating point operation occurred.
Ví dụ 4 - Vượt qua trong 1
Nếu bạn chuyển giá trị là 1, bạn sẽ nhận được bằng không.
SELECT LOG(1) Result;
Kết quả:
+----------+ | Result | |----------| | 0 | +----------+
Ví dụ 5 - Biểu thức
Bạn có thể chuyển vào các biểu thức như sau:
SELECT LOG(2+3) Result;
Kết quả:
+-----------------+ | Result | |-----------------| | 1.6094379124341 | +-----------------+
Điều đó cũng giống như làm điều này một cách hiệu quả:
SELECT LOG(5) Result;
Kết quả:
+-----------------+ | Result | |-----------------| | 1.6094379124341 | +-----------------+
Ví dụ 6 - Hai đối số
Dưới đây là một ví dụ để chứng minh cách hoạt động của hàm này bằng cách sử dụng hai đối số.
SELECT LOG(10, 100) Result;
Kết quả:
+----------+ | Result | |----------| | 0.5 | +----------+
Và sử dụng một ví dụ khác:
SELECT LOG(100, 10) Result;
Kết quả:
+----------+ | Result | |----------| | 2 | +----------+
Nếu bạn đã quen với phiên bản MySQL của LOG()
, bạn sẽ nhận thấy rằng cú pháp hai đối số sử dụng thứ tự ngược lại với phiên bản T-SQL (tức là cơ sở có trước).
Ví dụ 7 - Sử dụng Cơ số 1
Nếu bạn sử dụng 1
là cơ sở, bạn sẽ gặp lỗi.
SELECT LOG(10, 1) Result;
Kết quả:
Msg 3623, Level 16, State 1, Line 1 An invalid floating point operation occurred.
Tương tự nếu đối số đầu tiên bằng 0 hoặc nhỏ hơn:
SELECT LOG(0, 10) Result;
Kết quả:
Msg 3623, Level 16, State 1, Line 1 An invalid floating point operation occurred.
T-SQL cũng có EXP()
hàm nghịch đảo của LOG()
chức năng.
Bạn cũng có thể sử dụng LOG10()
hàm, trả về logarit cơ số 10 của biểu thức float đã chỉ định. Sử dụng hàm này giống như chuyển vào 10
làm đối số thứ hai cho LOG()
chức năng.