# NULLIF And  IFNULL
__*NULLIF function*__
__*IFNULL function*__
+ **`NULLIF(expr1, expr2)`**: Tests whether **`expr1`** and **`expr2`** are equal 
+ **`IFNULL(expr1, expr2)`**: Returns the first non-empty **`expr`**    
+ For example:
  + **`SELECT NULLIF('A','A'), NULLIF('A','B');`**  
  + **`SELECT IFNULL('A','B'), IFNULL(17/0,'A');`**  
```8
tidb> SELECT 
   -> NULLIF(~!@'A','A'@!~), 
   -> NULLIF(~!@'A','B'@!~);
+-----------------+-----------------+
| NULLIF('A','A') | NULLIF('A','B') |
+-----------------+-----------------+
|            NULL | A               |
+-----------------+-----------------+
1 row in set (0.00 sec)
tidb> SELECT 
   -> IFNULL(~!@'A'@!~,'B'), 
   -> IFNULL(~!@17/0@!~,'A');
+-----------------+------------------+
| IFNULL('A','B') | IFNULL(17/0,'A') |
+-----------------+------------------+
| A               | A                |
+-----------------+------------------+
1 row in set (0.00 sec)
```

------------------------------------------------------------
- **`IFNULL()`**  Build Null if/else
- **`NULLIF()`**  If expr1 = expr2, return NULL