ST_OrderingEquals vergleicht zwei Geometrien und gibt 1 (TRUE) zurück, wenn die Geometrien gleich sind und die Koordinaten die gleiche Reihenfolge haben; andernfalls wird 0 (FALSE) zurückgegeben.
Syntax
db2gse.ST_OrderingEquals(g1 db2gse.ST_Geometry, g2 db2gse.ST_Geometry)
Rückgabetyp
Integer
Beispiele
Die folgende Anweisung CREATE TABLE erstellt die Tabelle LINESTRING_TEST mit den beiden Linienspalten L1 und L2.
CREATE TABLE LINESTRING_TEST (lid integer, l1 db2gse.ST_LineString, l2 db2gse.ST_LineString);
Die folgende Anweisung INSERT fügt zwei Linienfolgen ein in L1 und L2, die gleich sind und dieselbe Koordinatenreihenfolge haben.
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)));
Die folgende Anweisung INSERT fügt zwei Linienfolgen ein in L1 und L2, die gleich sind, aber nicht dieselbe Koordinatenreihenfolge haben.
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)));
Die folgende Anweisung SELECT und die entsprechende Ergebnisgruppe zeigt, wie die Funktion ST_Equals unabhängig von der Reihenfolge der Koordinaten 1 (TRUE) zurückgibt. Die Funktion ST_OrderingEquals gibt 0 (FALSE) zurück, wenn die Geometrien nicht gleich sind und die gleiche Koordinatenreihenfolge haben.
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