7.14.1. between
¶
7.14.1.1. Summary¶
between
is used for checking the specified value exists in the specific range.
It is often used for combination with filter option in select.
7.14.1.2. Syntax¶
between
has five parameters:
between(column_or_value, min, min_border, max, max_border)
7.14.1.3. Usage¶
Here are a schema definition and sample data to show usage:
Execution example:
table_create Users TABLE_HASH_KEY ShortText
# [[0, 1337566253.89858, 0.000355720520019531], true]
column_create Users age COLUMN_SCALAR Int32
# [[0, 1337566253.89858, 0.000355720520019531], true]
table_create Ages TABLE_HASH_KEY Int32
# [[0, 1337566253.89858, 0.000355720520019531], true]
column_create Ages user_age COLUMN_INDEX Users age
# [[0, 1337566253.89858, 0.000355720520019531], true]
load --table Users
[
{"_key": "Alice", "age": 12},
{"_key": "Bob", "age": 13},
{"_key": "Calros", "age": 15},
{"_key": "Dave", "age": 16},
{"_key": "Eric", "age": 20}
{"_key": "Frank", "age": 21}
]
# [[0, 1337566253.89858, 0.000355720520019531], 6]
Here is the query to show the persons to match PG-13 rating (MPAA).
Execution example:
select Users --filter 'between(age, 13, "include", 16, "include")'
# [
# [
# 0,
# 1337566253.89858,
# 0.000355720520019531
# ],
# [
# [
# [
# 3
# ],
# [
# [
# "_id",
# "UInt32"
# ],
# [
# "_key",
# "ShortText"
# ],
# [
# "age",
# "Int32"
# ]
# ],
# [
# 2,
# "Bob",
# 13
# ],
# [
# 3,
# "Calros",
# 15
# ],
# [
# 4,
# "Dave",
# 16
# ]
# ]
# ]
# ]
It returns 13, 14, 15 and 16 years old users.
between
function accepts not only a column of table, but also the value.
If you specify the value as 1st parameter, it is checked whether the value is included or not. if it matches to the specified range, it returns the all records because between
function returns true.
If it doesn't match to the specified range, it returns no records because between
function returns false.
Execution example:
select Users --filter 'between(14, 13, "include", 16, "include")'
# [
# [
# 0,
# 1337566253.89858,
# 0.000355720520019531
# ],
# [
# [
# [
# 6
# ],
# [
# [
# "_id",
# "UInt32"
# ],
# [
# "_key",
# "ShortText"
# ],
# [
# "age",
# "Int32"
# ]
# ],
# [
# 1,
# "Alice",
# 12
# ],
# [
# 2,
# "Bob",
# 13
# ],
# [
# 3,
# "Calros",
# 15
# ],
# [
# 4,
# "Dave",
# 16
# ],
# [
# 5,
# "Eric",
# 20
# ],
# [
# 6,
# "Frank",
# 21
# ]
# ]
# ]
# ]
In the above case, it returns all the records, because 14 exists in between 13 and 16. This behavior is used for checking the specified value exists or not in the table.
7.14.1.4. Parameters¶
There are five required parameters, column_or_value
, and min
, min_border
, max
and max_border
.
7.14.1.4.1. column_or_value
¶
Specifies a column of the table or the value.
7.14.1.4.2. min
¶
Specifies the minimal border value of the range.
You can control the behavior that the value of max
is included or excluded by max_border
parameter.
7.14.1.4.3. min_border
¶
Specifies whether the specified range contains the value of min
or not.
The value of min_border
are either "include" or "exclude". If it is "include", min
value is included. If it is "exclude", min
value is not included.
7.14.1.4.4. max
¶
Specifies the maximum border value of the range.
You can control the behavior that the value of max
is included or excluded by max_border
parameter.
7.14.1.4.5. max_border
¶
Specifies whether the specified range contains the value of max
or not.
The value of max_border
are either "include" or "exclude". If it is "include", max
value is included. If it is "exclude", max
value is not included.
7.14.1.5. Return value¶
between
returns whether the value of column exists in specified the value of range or not. If record is matched to specified the value of range, it returns true. Otherwise, it returns false.