More math functions

Intermediate SQL Server

Ginger Grant

Instructor

Absolute value

Use ABS() to return non-negative values

ABS(number)
Intermediate SQL Server

Using ABS in T-SQL (I)

SELECT ABS(-2.77), ABS(3), ABS(-2)
+--------------------+-------------------+-------------------+
|(No column name)    |(No column name)   |(No column name)   |
+--------------------+-------------------+-------------------+
|2.77                |3                  |2                  |
+--------------------+-------------------+-------------------+

Intermediate SQL Server

Using ABS in T-SQL (II)

SELECT DurationSeconds, ABS(DurationSeconds) AS AbsSeconds 
FROM Incidents
+--------------------+--------------------+ 
|DurationSeconds     |AbsSeconds          | 
+--------------------+--------------------+ 
|-25.36              |25.36               | 
|-258482.44          |258482.44           |
|45.66               |45.66               |
+--------------------+--------------------+ 
Intermediate SQL Server

Squares and square roots in T-SQL

SELECT SQRT(9) AS Sqrt, 
       SQUARE(9) AS Square
+--------+-----------+ 
|Sqrt    |Square     |
+--------------------+
|3       |81         |
+--------+-----------+

Intermediate SQL Server

Logs

  • LOG() returns the natural logarithm
  • Optionally, you can set the base, which if not set is 2.718281828

 

LOG(number [,Base])
Intermediate SQL Server

Calculating logs in T-SQL

SELECT  DurationSeconds, LOG(DurationSeconds, 10) AS LogSeconds
FROM Incidents
+--------------------+--------------------+  
|DurationSeconds     |LogSeconds          |
+--------------------+--------------------+  
|37800               |4.577491799837225   |
|5                   |0.6989700043360187  |
|20                  |1.301029995663981   |
...
+--------------------+--------------------+  
Intermediate SQL Server

Log of 0

You cannot take the log of 0 as it will give you an error

SELECT LOG(0, 10)

An invalid floating point operation occurred.
Intermediate SQL Server

Let's practice!

Intermediate SQL Server

Preparing Video For Download...