252 lines
3.4 KiB
SQL
252 lines
3.4 KiB
SQL
# name: test/sql/function/generic/test_between.test
|
|
# description: Test between statement
|
|
# group: [generic]
|
|
|
|
statement ok
|
|
SET default_null_order='nulls_first';
|
|
|
|
# test constant BETWEEN statement
|
|
# simple between
|
|
query T
|
|
SELECT 10 BETWEEN 10 AND 20
|
|
----
|
|
1
|
|
|
|
query T
|
|
SELECT 9 BETWEEN 10 AND 20
|
|
----
|
|
0
|
|
|
|
# now with NULL values
|
|
query T
|
|
SELECT 10 BETWEEN NULL AND 20
|
|
----
|
|
NULL
|
|
|
|
query T
|
|
SELECT 30 BETWEEN NULL AND 20
|
|
----
|
|
0
|
|
|
|
query T
|
|
SELECT 10 BETWEEN 10 AND NULL
|
|
----
|
|
NULL
|
|
|
|
query T
|
|
SELECT 9 BETWEEN 10 AND NULL
|
|
----
|
|
0
|
|
|
|
query T
|
|
SELECT NULL BETWEEN 10 AND 20
|
|
----
|
|
NULL
|
|
|
|
query T
|
|
SELECT NULL BETWEEN NULL AND 20
|
|
----
|
|
NULL
|
|
|
|
query T
|
|
SELECT NULL BETWEEN 10 AND NULL
|
|
----
|
|
NULL
|
|
|
|
query T
|
|
SELECT NULL BETWEEN NULL AND NULL
|
|
----
|
|
NULL
|
|
|
|
# between with table
|
|
statement ok
|
|
CREATE TABLE integers(i INTEGER);
|
|
|
|
statement ok
|
|
INSERT INTO integers VALUES (1), (2), (3), (NULL)
|
|
|
|
query T
|
|
SELECT i BETWEEN 1 AND 2 FROM integers ORDER BY i
|
|
----
|
|
NULL
|
|
1
|
|
1
|
|
0
|
|
|
|
query T
|
|
SELECT i BETWEEN NULL AND 2 FROM integers ORDER BY i
|
|
----
|
|
NULL
|
|
NULL
|
|
NULL
|
|
0
|
|
|
|
query T
|
|
SELECT i BETWEEN 2 AND NULL FROM integers ORDER BY i
|
|
----
|
|
NULL
|
|
0
|
|
NULL
|
|
NULL
|
|
|
|
# between in WHERE clause
|
|
query I
|
|
SELECT COUNT(*) FROM integers WHERE 10 BETWEEN 10 AND 20
|
|
----
|
|
4
|
|
|
|
query I
|
|
SELECT COUNT(*) FROM integers WHERE 9 BETWEEN 10 AND 20
|
|
----
|
|
0
|
|
|
|
query I
|
|
SELECT COUNT(*) FROM integers WHERE 10 BETWEEN NULL AND 20
|
|
----
|
|
0
|
|
|
|
query I
|
|
SELECT COUNT(*) FROM integers WHERE 30 BETWEEN NULL AND 20
|
|
----
|
|
0
|
|
|
|
query I
|
|
SELECT COUNT(*) FROM integers WHERE 10 BETWEEN 10 AND NULL
|
|
----
|
|
0
|
|
|
|
query I
|
|
SELECT COUNT(*) FROM integers WHERE 9 BETWEEN 10 AND NULL
|
|
----
|
|
0
|
|
|
|
query I
|
|
SELECT COUNT(*) FROM integers WHERE NULL BETWEEN 10 AND 20
|
|
----
|
|
0
|
|
|
|
query I
|
|
SELECT COUNT(*) FROM integers WHERE NULL BETWEEN NULL AND 20
|
|
----
|
|
0
|
|
|
|
query I
|
|
SELECT COUNT(*) FROM integers WHERE NULL BETWEEN 10 AND NULL
|
|
----
|
|
0
|
|
|
|
query I
|
|
SELECT COUNT(*) FROM integers WHERE NULL BETWEEN NULL AND NULL
|
|
----
|
|
0
|
|
|
|
query I
|
|
SELECT COUNT(*) FROM integers WHERE i BETWEEN 1 AND 2
|
|
----
|
|
2
|
|
|
|
query I
|
|
SELECT COUNT(*) FROM integers WHERE i BETWEEN NULL AND 2
|
|
----
|
|
0
|
|
|
|
query I
|
|
SELECT COUNT(*) FROM integers WHERE i BETWEEN 2 AND NULL
|
|
----
|
|
0
|
|
|
|
query I
|
|
SELECT COUNT(*) FROM integers WHERE NULL BETWEEN -1 AND +1
|
|
----
|
|
0
|
|
|
|
query I
|
|
SELECT COUNT(*) FROM integers WHERE 0 BETWEEN -1 AND +1
|
|
----
|
|
4
|
|
|
|
query I
|
|
SELECT COUNT(*) FROM integers WHERE i BETWEEN i-1 AND i+1
|
|
----
|
|
3
|
|
|
|
query I
|
|
SELECT COUNT(*) FROM integers WHERE i BETWEEN i-1 AND 10
|
|
----
|
|
3
|
|
|
|
query I
|
|
SELECT COUNT(*) FROM integers WHERE i BETWEEN NULL AND NULL
|
|
----
|
|
0
|
|
|
|
query I
|
|
SELECT COUNT(*) FROM integers WHERE i BETWEEN i-1 AND NULL
|
|
----
|
|
0
|
|
|
|
query I
|
|
SELECT COUNT(*) FROM integers WHERE i BETWEEN 0 AND i+1
|
|
----
|
|
3
|
|
|
|
query I
|
|
SELECT COUNT(*) FROM integers WHERE i BETWEEN NULL AND i+1
|
|
----
|
|
0
|
|
|
|
query I
|
|
SELECT COUNT(*) FROM integers WHERE 1 BETWEEN i-1 AND i+1
|
|
----
|
|
2
|
|
|
|
query I
|
|
SELECT COUNT(*) FROM integers WHERE NULL BETWEEN i-1 AND i+1
|
|
----
|
|
0
|
|
|
|
query I
|
|
SELECT COUNT(*) FROM integers WHERE NULL BETWEEN i-1 AND NULL
|
|
----
|
|
0
|
|
|
|
query I
|
|
SELECT COUNT(*) FROM integers WHERE 1 BETWEEN i-1 AND 100
|
|
----
|
|
2
|
|
|
|
query I
|
|
SELECT COUNT(*) FROM integers WHERE 1 BETWEEN 0 AND i-1
|
|
----
|
|
2
|
|
|
|
query I
|
|
SELECT * FROM integers WHERE i >= 1 AND i < 2
|
|
----
|
|
1
|
|
|
|
query I
|
|
SELECT * FROM integers WHERE i > 1 AND i <= 2
|
|
----
|
|
2
|
|
|
|
query I
|
|
SELECT * FROM range(4) tbl(i) WHERE i >= 1 AND i < 2
|
|
----
|
|
1
|
|
|
|
query I
|
|
SELECT * FROM range(4) tbl(i) WHERE i > 1 AND i <= 2
|
|
----
|
|
2
|
|
|
|
# Issue #3588 - only one constant bounds
|
|
statement ok
|
|
CREATE TABLE issue3588(c0 INT);
|
|
|
|
statement ok
|
|
SELECT *
|
|
FROM issue3588
|
|
WHERE (SELECT 0) BETWEEN 0 AND issue3588.c0;
|
|
|