SQL 2005+

# SQL Server Logarithmic Functions

*The forty-second part of the SQL Server Programming Fundamentals tutorial continues the examination of the mathematical Transact-SQL (T-SQL) functions. This article considers the logarithmic functions that are provided by Transact-SQL.*

## Logarithmic Functions

*Logarithms* are used primarily when working with large numbers. They are often used for scientific purposes and in engineering solutions. Logarithms are expressed with a *base* value. The logarithm of a number to a given base gives the value of the power that the base must be raised to in order to produce that number. For example, the base two logarithm of the number 256 is eight because two to the power of eight is 256.

Transact-SQL includes two functions that calculate logarithms. The first returns the base ten logarithm for a value. The second calculates the *natural logarithm* of a value. This is the logarithm that uses *Euler's number*, or *e*, as the base. Euler's number is approximately 2.71828.

### Base 10 Logarithm

The base 10 logarithm of a value can be calculated in T-SQL using the *Log10* function. The function requires a single argument containing the value to be processed. The following script shows some example calculations.

PRINT log10(1) -- 0 PRINT log10(10) -- 1 PRINT log10(100) -- 2 PRINT log10(0.1) -- -1 PRINT log10(0.01) -- -2 PRINT log10(56) -- 1.74819

### Natural Logarithm

The natural logarithm of a value is returned by the *Log* function. As you can see in the following examples, Euler's number is not exactly 2.71828 so the log of this value is slightly below one.

PRINT log(2.71828) -- 0.999999 PRINT log(10) -- 2.30259

### Exponential Value

The exponential function (*Exp*) is the inverse of the logarithm function. It returns *e* to the power of the value provided. The following examples demonstrate the function by performing the reverse operations to those in the previous script.

PRINT exp(0.999999) -- 2.71828 PRINT exp(2.30259) -- 10