# PostgreSQL Mathematical Operators

## Mathematical Operators

PostgreSQL provided many Mathematical operators for common mathematical conventions. The bitwise operators can be used only with the integer data types.

List of Mathematical Operators

Operators |
Description | Example | Output |
---|---|---|---|

+ | Addition | 5 + 8 | 13 |

- | Subtraction | 6 - 9 | -3 |

* | Multiplication | 5 * 8 | 40 |

/ | Division | 15 / 3 | 5 |

% | Modulo ( Remainder ) | 15 % 2 | 1 |

^ | Exponentiation | 4.0 ^ 2.0 | 16 |

| / | Square Root | | / 16 | 4 |

| | / | Cube Root | | | / 27 | 3 |

! | Factorial | ! 6 | 720 |

! ! | Factorial ( with prefix operator) | ! ! 6 | 720 |

@ | Absolute Value | @ -15.07 | 15.07 |

& | Bitwise AND | 53 & 38 | 36 |

| | Bitwise OR | 53 | 38 | 55 |

# | Bitwise XOR | 53 # 38 | 19 |

~ | Bitwise NOT | ~ 38 | -39 |

<< | Bitwise shift left | 25 << 2 | 100 |

>> | Bitwise shift right | 120 >> 3 | 15 |

PostgreSQL Plus ( + ) operator example

If we want to add two numbers, the following SQL can be used.

**SQL**

Code:

```
SELECT 5+8 AS "Addition";
```

Output

PostgreSQL Minus ( - ) operator example

If we want to subtract two numbers, the following SQL can be used.

**SQL**

Code:

```
SELECT 6-9 AS "Subtraction";
```

Output:

PostgreSQL Multiplication ( * ) operator example

If we want to multiply two numbers, the following SQL can be used.

**SQL**

Code:

```
SELECT 5 * 8 AS "Multiplication";
```

Output:

PostgreSQL Division ( / ) operator example

If we want to division two numbers, the following SQL can be used.

**SQL**

Code:

```
SELECT 15 / 3 AS "Division";
```

Output:

PostgreSQL Modulo ( % ) operator example

If we want to get the remainder of a division by two numbers, the following SQL can be used.

**SQL**

Code:

```
SELECT 15 % 2 AS "Remainder";
```

Output:

PostgreSQL Exponentiation ( ^ ) operator example

If we want to get the exponentiation of a number powered by another number, the following SQL can be used.

**SQL**

Code:

```
SELECT 4.0 ^ 2.0 AS "Exponentiation";
```

Output:

PostgreSQL Square Root ( |/ ) operator example

If we want to get the square root of a number, the following SQL can be used.

**SQL**

Code:

```
SELECT |/16 AS "Square Root";
```

Output:

PostgreSQL Cube Root ( | | / ) operator example

If we want to get the cube root of a number, the following SQL can be used.

**SQL**

Code:

```
SELECT ||/27 AS "Cube Root";
```

Output:

PostgreSQL Factorial (!) operator example

If we want to get the factorial of a number, the following SQL can be used.

**SQL**

Code:

```
SELECT 6! AS "Factorial";
```

Output:

PostgreSQL Factorial(with prefix) (! !) operator example

If we want to get the factorial of a number with factorial prefix operator, the following SQL can be used.

**SQL**

Code:

```
SELECT !!6 AS "Factorial ( with prefix )";
```

Output

PostgreSQL Absolute Value ( @ ) operator example

If we want to get the absolute value of a number, the following SQL can be used.

**SQL**

Code:

```
SELECT @ -15.07 AS "Absolute Value";
```

Output:

PostgreSQL Bitwise AND ( & ) operator example

The PostgreSQL Bitwise AND ( & ) operator compares corresponding bits for each operand and produces a 1 when both bits are 1 otherwise it returns 0.

**SQL**

Code:

```
SELECT 53 & 38 AS "Bitwise AND";
```

Output:

**Pictorial representation of PostgreSQL Bitwise AND ( & ) operator**

PostgreSQL Bitwise OR ( | ) operator example

The PostgreSQL Bitwise OR ( | ) operator compares corresponding bits for each operand and produces a 1 when either or both bits are 1 otherwise it returns 0.

**SQL**

Code:

```
SELECT 53 | 38 AS "Bitwise OR";
```

Output:

**Pictorial representation of PostgreSQL Bitwise OR ( | ) operator**

PostgreSQL Bitwise XOR ( # ) operator example

The PostgreSQL Bitwise XOR ( # ) operator is similar to OR operator. It compares corresponding bits for each operand and produces a 1 when either but not both bits is 1 otherwise it returns 0.

**SQL**

Code:

```
SELECT 53 # 38 AS "Bitwise XOR";
```

Output:

**Pictorial representation of PostgreSQL Bitwise XOR ( # ) operator**

PostgreSQL Bitwise NOT ( ~ ) operator example

The PostgreSQL Bitwise NOT ( ~ ) operator is a unary operator. It produces a toggled result, that is all 0's converted to 1 and all 1's are converted to 0.

**SQL**

Code:

```
SELECT ~38 AS "Bitwise NOT";
```

Output:

PostgreSQL Bitwise Left Shift ( << ) operator example

The left shift(<<) operator shifts the bits in the first operand to the left by n bits, where n is the second operand. The left shift by n bits is similar to multiply the first operand by 2 to the power n.

**SQL**

Code:

```
SELECT 25 << 2 AS "Bitwise Left Shift";
```

Output:

**Pictorial representation of PostgreSQL Bitwise left shift ( << ) operator**

PostgreSQL Bitwise Right Shift (>>) operator example

The right shift (>>)operator shifts the bits in the first operand to the right by n bits, where n is the second operand. A right shift by n bits is similar to dividing the first operand by 2 to the power n.

**SQL**

Code:

```
SELECT 120 >> 3 AS "Bitwise Right Shift";
```

Output:

**Pictorial representation of PostgreSQL Bitwise right shift ( >> ) operator**

**Previous:** Comparison Operators

**Next: ** Binary String Functions and Operators

**Weekly Trends and Language Statistics**- Weekly Trends and Language Statistics