# Difference between revisions of "ABS"

From SQLZOO

Line 29: | Line 29: | ||

<ul> | <ul> | ||

− | <li>[ | + | <li>[http://sqlzoo.net/w/index.php/CASE CASE statement]</li> |

</ul> | </ul> |

## Revision as of 10:53, 13 July 2012

ABS(f) | ||
---|---|---|

Engine | OK | Alternative |

ingres | Yes | |

mysql | Yes | |

oracle | Yes | |

postgres | Yes | |

sqlserver | Yes |

# ABS

ABS returns the absolute value. The output is positive even if the input is negative:

ABS(x) = x if x>=0 ABS(x) = -x if x<0

ABS can be useful for testing values that are "close". For example this query shows each country that has area that is roughly 70 thousand. The value 70000 is the target value, 500 is the "tolerance" so the test ABS(area-70000)<500 tests that the area is between 70000-500 and 70000+500. That is 69500<area<70500

```
SELECT name, area FROM bbc
WHERE ABS(area-70000)<500
```

```
SELECT name, area FROM bbc
WHERE ABS(area-70000)<500
```