BETWEEN10
📄字数 1.3K
👁️阅读量 加载中...
功能描述
返回字符串 expr1 是否落在 [expr2, expr3) 区间内的结果,如果是,则返回 TRUE;否则返回 FALSE。
语法格式
sql
BETWEEN10(expr1, expr2, expr3)输入参数
expr1:字符表达式,TINYINT、SMALLINT、INTEGER、BIGINT、FLOAT、DOUBLE、NUMERIC、DATE、DATETIME、DATETIME WITH TIME ZONE、TIME、TIME WITH TIME ZONE、INTERVAL、VARCHAR、ROWVERSION类型,或能隐式转换为上述类型的其他类型。expr2:字符表达式,TINYINT、SMALLINT、INTEGER、BIGINT、FLOAT、DOUBLE、NUMERIC、DATE、DATETIME、DATETIME WITH TIME ZONE、TIME、TIME WITH TIME ZONE、INTERVAL、VARCHAR、ROWVERSION类型,或能隐式转换为上述类型的其他类型。expr3:字符表达式,TINYINT、SMALLINT、INTEGER、BIGINT、FLOAT、DOUBLE、NUMERIC、DATE、DATETIME、DATETIME WITH TIME ZONE、TIME、TIME WITH TIME ZONE、INTERVAL、VARCHAR、ROWVERSION类型,或能隐式转换为上述类型的其他类型。
提示
- 因
NULL无具体的类型,所以当所有参数均为NULL时,会产生异常E10100 候选函数出现多义性,需要手动为参数指定具体的类型,如:BETWEEN10(NULL::INTEGER, NULL::INTEGER, NULL::INTEGER)。 - 输入参数的类型原则上应该保持一致,如果不一致,内部会根据参数匹配评分算法,选择一个最优类型的函数。
INTERVAL类型的详细使用说明,请参考 时间间隔类型。
输出结果
返回 BOOLEAN 类型,任一输入参数为 NULL 时,输出结果为 UNKNOWN。
示例
以字符集为UTF-8的数据库为例:
sql
-- 返回字符 '1' 是否大于等于 '2' 并且小于 '3' 的比较结果(比较ASCII码)
SQL> SELECT BETWEEN10('1', '2', '3');
+-------+
| EXPR1 |
+-------+
| F |
+-------+
-- 返回字符串 '张三' 是否大于等于 '张' 并且小于 '李飞' 的比较结果(比较UTF8字符集编码)
SQL> SELECT BETWEEN10('张三', '张', '李飞');
+-------+
| EXPR1 |
+-------+
| T |
+-------+
-- 返回时间 '20:30:10.123' 是否大于等于 '20:30:10.0' 并且小于 '20:30:10.123' 的比较结果
SQL> SELECT BETWEEN10('20:30:10.123'::TIME, '20:30:10.0'::TIME, '20:30:10.123'::TIME);
+-------+
| EXPR1 |
+-------+
| F |
+-------+