Определение
ST_OrderingEquals сравнивает два объекта ST_Geometry и возвращает значение 1 (Oracle) или t (PostgreSQL), если геометрии идентичны. В противном случае возвращается значение 0 (Oracle) или f (PostgreSQL).
Синтаксис
sde.st_orderingequals (g1 sde.st_geometry, g2 sde.st_geometry)
Тип возвращаемого значения
Целое (Булево)
Пример
Oracle
Следующая инструкция CREATE TABLE создает таблицу LINESTRING_TEST с двумя строковыми столбцами, ln1 и ln2.
CREATE TABLE linestring_test (
lid integer,
ln1 sde.st_geometry,
ln2 sde.st_geometry);
Следующая инструкция INSERT вставляет два значения ST_LineString в равные столбцы ln1 и ln2 с одинаковым порядком координат.
INSERT INTO LINESTRING_TEST VALUES (
1,
sde.st_geometry ('linestring (10.01 20.02, 21.50 12.10)', 0),
sde.st_geometry ('linestring (21.50 12.10, 10.01 20.02)', 0)
);
Следующая инструкция SELECT и соответствующий набор результатов показывают, как функция ST_Equals возвращает значение 1 (TRUE) независимо от порядка координат. Функция ST_OrderingEquals возвращает значение 0 (FALSE), если геометрии не равны и у них одинаковый порядок координат.
SELECT lid, sde.st_equals (ln1, ln2) Equals, sde.st_orderingequals (ln1, ln2) OrderingEquals
FROM LINESTRING_TEST;
lid Equals OrderingEquals
1 1 0
PostgreSQL
Следующая инструкция CREATE TABLE создает таблицу LINESTRING_TEST с двумя строковыми столбцами, ln1 и ln2.
CREATE TABLE linestring_test (
lid integer,
ln1 sde.st_geometry,
ln2 sde.st_geometry);
Следующая инструкция INSERT вставляет два значения ST_LineString в равные столбцы ln1 и ln2 с одинаковым порядком координат.
INSERT INTO linestring_test VALUES (
1,
sde.st_linestring ('linestring (10.01 20.02, 21.50 12.10)', 0),
sde.st_linestring ('linestring (21.50 12.10, 10.01 20.02)', 0)
);
Следующая инструкция SELECT и соответствующий результирующий набор показывают, как функция ST_Equals возвращает значение t (TRUE) независимо от порядка координат. Функция ST_OrderingEquals возвращает значение f (FALSE), если геометрии не равны и у них одинаковый порядок координат.
SELECT lid, sde.st_equals (ln1, ln2) AS Equals, sde.st_orderingequals (ln1, ln2)
AS OrderingEquals
FROM linestring_test;
lid equals orderingequals
1 t f