定义
ST_OrderingEquals 用于比较两个 ST_Geometries 对象,如果两个对象的几何相等且坐标顺序相同,则返回 1 (Oracle) 或 t (PostgreSQL);否则,其将返回 0 (Oracle) 或 f (PostgreSQL)。
语法
sde.st_orderingequals (g1 sde.st_geometry, g2 sde.st_geometry)
返回类型
整型(布尔)
示例
Oracle
下面的 CREATE TABLE 语句将创建包含两个线串列(ln1 和 ln2)的 LINESTRING_TEST 表。
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 语句将创建包含两个线串列(ln1 和 ln2)的 LINESTRING_TEST 表。
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