Последнее обновление
ST_GEOMETRYTYPE
Описание
Возвращает название типа заданного геометрического объекта в верхнем регистре. Используется для определения конкретного типа геометрической фигуры.
Синтаксис
ST_GEOMETRYTYPE( <shape> )
Параметры
| Параметр | Описание |
|---|---|
<shape> | Входной геометрический объект типа GEOMETRY или типа VARCHAR (в формате WKT), который можно преобразовать в GEOMETRY. |
Возвращаемое значение
Возвращает строку типа VARCHAR в верхнем регистре, обозначающую тип геометрического объекта.
Для ST_GEOMETRYTYPE предусмотрены следующие граничные случаи:
- Если входной параметр равен
NULL, возвращаетNULL. - Если входной параметр невозможно разобрать как допустимый геометрический объект, возвращает
NULL. - Поддерживаемые типы геометрических объектов и примеры возвращаемых значений:
POINT:"ST_POINT"LINESTRING:"ST_LINESTRING"POLYGON:"ST_POLYGON"MULTIPOLYGON:"ST_MULTIPOLYGON"CIRCLE:"ST_CIRCLE"
Пример
Тип точки
SELECT ST_GEOMETRYTYPE(ST_GeometryFromText('POINT(1 1)'));
+----------------------------------------------------+
| ST_GEOMETRYTYPE(ST_GeometryFromText('POINT(1 1)')) |
+----------------------------------------------------+
| ST_POINT |
+----------------------------------------------------+
Тип линии
SELECT ST_GEOMETRYTYPE(ST_LineFromText("LINESTRING (1 1,2 2,3 3)"));
+--------------------------------------------------------------+
| ST_GEOMETRYTYPE(ST_LineFromText("LINESTRING (1 1,2 2,3 3)")) |
+--------------------------------------------------------------+
| ST_LINESTRING |
+--------------------------------------------------------------+
Тип многоугольника
SELECT ST_GEOMETRYTYPE(ST_GeometryFromText('POLYGON((0 0, 10 0, 10 10, 0 10, 0 0))'));
+--------------------------------------------------------------------------------+
| ST_GEOMETRYTYPE(ST_GeometryFromText('POLYGON((0 0, 10 0, 10 10, 0 10, 0 0))')) |
+--------------------------------------------------------------------------------+
| ST_POLYGON |
+--------------------------------------------------------------------------------+
Тип окружности (расширение Doris)
SELECT ST_GEOMETRYTYPE(ST_Circle(0, 0, 100));
+---------------------------------------+
| ST_GEOMETRYTYPE(ST_Circle(0, 0, 100)) |
+---------------------------------------+
| ST_CIRCLE |
+---------------------------------------+
Недопустимый параметр (возвращает NULL)
SELECT ST_GEOMETRYTYPE('NOT_A_GEOMETRY');
+-----------------------------------+
| ST_GEOMETRYTYPE('NOT_A_GEOMETRY') |
+-----------------------------------+
| NULL |
+-----------------------------------+
Параметр NULL
SELECT ST_GEOMETRYTYPE(NULL);
+-----------------------+
| ST_GEOMETRYTYPE(NULL) |
+-----------------------+
| NULL |
+-----------------------+