1
0
mirror of https://github.com/jbranchaud/til synced 2026-01-05 08:08:02 +00:00

Add Between Symmetric as a postgres til

This commit is contained in:
jbranchaud
2017-02-16 13:11:21 -06:00
parent 06c0f0ef59
commit 61e7ffe3c3
2 changed files with 43 additions and 1 deletions

View File

@@ -0,0 +1,41 @@
# Between Symmetric
PostgreSQL's `between` construct allows you to make a comparison _between_
two values (numbers, timestamps, etc.).
```sql
> select * from generate_series(1,10) as numbers(a) where numbers.a between 3 and 6;
a
---
3
4
5
6
```
If you supply an empty range by using the larger of the two values first, an
empty set will result.
```sql
> select * from generate_series(1,10) as numbers(a) where numbers.a between 6 and 3;
a
---
```
Tacking `symmetric` onto the `between` construct is one way to avoid this
issue.
```sql
> select * from generate_series(1,10) as numbers(a) where numbers.a between symmetric 6 and 3;
a
---
3
4
5
6
```
> BETWEEN SYMMETRIC is the same as BETWEEN except there is no requirement
> that the argument to the left of AND be less than or equal to the argument
> on the right. If it is not, those two arguments are automatically swapped,
> so that a nonempty range is always implied.