CIRCLE
📄字数 602
👁️阅读量 加载中...
功能描述
计算参数的值,返回一个圆。
语法格式
sql
CIRCLE(expr1[, expr2])
输入参数
expr1
:BOX
、CIRCLE
、POINT
、POLYGON
或CHAR
类型。expr2
:目标半径,DOUBLE
类型,当指定expr2
时,expr1
只能是POINT
类型。
提示
- 因
NULL
无具体的类型,所以当参数为NULL
时,会产生异常E10100 候选函数出现多义性
,需要手动为参数指定具体的类型,如:CIRCLE(NULL::BOX)
。 - 当参数
expr1
为CHAR
类型时,合法格式为'<(x1, y1), r1>'
,若格式错误,则报错[E17003 L1 C8] 数据格式错
。
输出结果
返回 CIRCLE
类型,输入参数为 NULL
时,输出结果为 NULL
。
根据输入参数类型的差异,输出结果代表不同的功能:
参数1 | 参数2 | 输出结果 |
---|---|---|
BOX | - | 计算最小的圆形包围框,返回边框的外接圆 |
POLYGON | - | 将多边形转换为圆。圆心是多边形各点位置的平均值,半径是多边形各点到圆心的平均距离 |
CIRCLE | - | 将圆转换为圆 |
CHAR | - | 将字符串转换为圆 |
POINT | DOUBLE | 以圆心和半径构造圆 |
示例
sql
-- 计算最小的圆形包围框,返回边框的外接圆
SQL> SELECT CIRCLE(BOX('(1, 1), (-1, -1)'));
+----------------------------+
| EXPR1 |
+----------------------------+
| <(0,0),1.4142135623730951> |
+----------------------------+
-- 以圆心和半径构造圆
SQL> SELECT CIRCLE(POINT ('(3, 4)'), 2.0);
+-----------+
| EXPR1 |
+-----------+
| <(3,4),2> |
+-----------+
-- 将多边形转换为圆。圆心是多边形各点位置的平均值,半径是多边形各点到圆心的平均距离
SQL> SELECT CIRCLE(POLYGON('((0, 0), (1, 3), (2, 0))'));
+----------------------------+
| EXPR1 |
+----------------------------+
| <(1,1),1.6094757082487299> |
+----------------------------+