BOX
📄字数 603
👁️阅读量 加载中...
功能描述
计算参数的值,返回一个矩形框。
语法格式
sql
BOX(expr1[, expr2])
输入参数
expr1
:CIRCLE
、POINT
、POLYGON
或CHAR
类型。expr2
:POINT
类型,当指定expr2
时,expr1
只能是POINT
类型。
提示
- 因
NULL
无具体的类型,所以当参数为NULL
时,会产生异常E10100 候选函数出现多义性
,需要手动为参数指定具体的类型,如:BOX(NULL::CIRCLE)
。 - 当参数
expr1
为CHAR
类型时,合法格式为'(x1, y1), (x2, y2)'
,若格式错误,则报错[E17003 L1 C8] 数据格式错
。
输出结果
返回 BOX
类型,输入参数为 NULL
时,输出结果为 NULL
。
根据输入参数类型的差异,输出结果代表不同的功能:
参数1 | 参数2 | 输出结果 |
---|---|---|
CIRCLE | - | 计算圆的内切矩形 |
POINT | - | 将点转换为空框 |
POLYGON | - | 计算多边形的边界框 |
CHAR | - | 将字符串转为矩形框 |
POINT | POINT | 将任意两个点转换为框 |
示例
sql
-- 将圆形转换为矩形,返回CIRCLE内切正方形的BOX
SQL> SELECT BOX(CIRCLE('<(0, 0), 1>'));
+-----------------------------------------------------------------------------------+
| EXPR1 |
+-----------------------------------------------------------------------------------+
| (0.7071067811865475,0.7071067811865475),(-0.7071067811865475,-0.7071067811865475) |
+-----------------------------------------------------------------------------------+
-- 将任意两个点转换为框
SQL> SELECT BOX(POINT('(0, 1)'), POINT('(1, 0)'));
+-------------+
| EXPR1 |
+-------------+
| (1,1),(0,0) |
+-------------+
-- 计算多边形的边界框
SQL> SELECT BOX(POLYGON('((0, 0), (1, 1), (2, 0))'));
+-------------+
| EXPR1 |
+-------------+
| (2,1),(0,0) |
+-------------+