POINT
📄字数 666
👁️阅读量 加载中...
功能描述
构造点几何对象或从其他几何类型中提取中心点。
语法格式
sql
POINT(expr1 [, expr2])
输入参数
expr1
:支持CHAR
,BOX
,CIRCLE
,LSEG
,POLYGON
和DOUBLE
类型,为DOUBLE
类型时,必须指定expr2
。expr2
:可选参数,默认为空,不为空时,其类型必须是DOUBLE
。
提示
- 因
NULL
无具体的类型,所以当expr
为NULL
时且只有一个参数,会产生异常E10100 候选函数出现多义性
,需要手动为参数指定具体的类型,如:POINT(NULL::CHAR)
。 - 当参数为字符串时,合法格式
'(x1,y1)'
,若格式错误,则报错[E17003 L1 C8] 数据格式错
。
输出结果
输出结果为POINT
类型,输入不同类型的几何对象时,输出如下表:
参数1 | 参数2 | 输出 |
---|---|---|
CHAR | - | 将字符串转换为点 |
BOX | - | 计算BOX 的中心点 |
CIRCLE | - | 计算圆心 |
LSEG | - | 计算线段中点 |
POLYGON | - | 计算多边形的中心(多边形的点位置的平均值) |
DOUBLE | DOUBLE | 将坐标转换为点 |
示例
sql
--用坐标构造点。
SQL> SELECT POINT(23.4, -44.5) FROM dual;
+--------------+
| EXPR1 |
+--------------+
| (23.4,-44.5) |
+--------------+
-- 计算`BOX`的中心。
SQL> SELECT POINT(BOX('(1,0),(-1,0)')) FROM dual;
+-------+
| EXPR1 |
+-------+
| (0,0) |
+-------+
-- 计算圆心。
SQL> SELECT POINT(CIRCLE('<(0,0),2>')) FROM dual;
+-------+
| EXPR1 |
+-------+
| (0,0) |
+-------+
--计算线段的中心。
SQL> SELECT POINT(LSEG('[(-1,0),(1,0)]')) FROM dual;
+-------+
| EXPR1 |
+-------+
| (0,0) |
+-------+
-- 计算多边形的中心
SQL> SELECT POINT(POLYGON('((0,0),(1,1),(2,0))')) FROM dual;
+------------------------+
| EXPR1 |
+------------------------+
| (1,0.3333333333333333) |
+------------------------+