ST_OrderingEquals compara dos geometrías y devuelve 1 (TRUE) si las geometrías son iguales y las coordenadas están en el mismo orden y 0 (FALSE) si no es así.
Sintaxis
db2gse.ST_OrderingEquals(g1 db2gse.ST_Geometry, g2 db2gse.ST_Geometry)
Tipo devuelto
Entero
Ejemplos
La siguiente sentencia CREATE TABLE crea la tabla LINESTRING_TEST, que tiene dos columnas tipo serie lineal, L1 y L2.
CREATE TABLE LINESTRING_TEST (lid integer, l1 db2gse.ST_LineString, l2 db2gse.ST_LineString);
La siguiente sentencia INSERT inserta en L1 y L2 dos series lineales que son iguales y tienen el mismo orden de coordenadas.
INSERT INTO linestring_test VALUES (1, db2gse.LineFromText('linestring (10.01 20.02, 21.50 12.10)', db2gse.coordref()..srid(0)), db2gse.LineFromText('linestring (10.01 20.02, 21.50 12.10)', db2gse.coordref()..srid(0)));
La siguiente sentencia INSERT inserta en L1 y L2 dos series lineales que son iguales pero no tienen el mismo orden de coordenadas.
INSERT INTO linestring_test VALUES (2, db2gse.LineFromText('linestring (10.01 20.02, 21.50 12.10)', db2gse.coordref()..srid(0)), db2gse.LineFromText('linestring (21.50 12.10,10.01 20.02)', db2gse.coordref()..srid(0)));
La siguiente sentencia SELECT y el conjunto de resultados correspondiente muestra cómo la función ST_Equals devuelve 1 (TRUE) independientemente del orden de las coordenadas. La función ST_OrderingEquals devuelve 0 (FALSE) si no se cumplen las dos condiciones siguientes: son iguales y tienen el mismo orden de coordenadas.
SELECT lid, db2gse.ST_Equals(l1,l2) equals, db2gse.ST_OrderingEquals(l1,l2) OrderingEquals FROM linestring_test lid equals OrderingEquals --- ------ ----------- 1 1 1 2 1 0