Перейти к содержимому
Последнее обновление

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 |
+-----------------------+