ST_DIFFERENCE 标量函数
ST_DIFFERENCE 函数将两个几何图形对象作为输入参数,并返回第一个几何图形中未与第二个几何图形相交的部分。
如果 geometry1 或 geometry2 为空,那么结果为空值。 如果 geometry1 为空,那么将返回空几何图形。 如果 geometry2 为空,那么将返回 geometry1 。
语法
- geometry1
- 类型为ST_几何图形的值,表示用于计算与 geometry2的差异的第一个几何图形。
- geometry2
- 类型为ST_几何的值,表示用于计算与 geometry1的差异的第二个几何体。
此函数的结果为ST_几何。
示例1
找到两个不相关的多边形之间的差异。
VALUES QSYS2.ST_ASTEXT(
QSYS2.ST_DIFFERENCE(QSYS2.ST_POLYGON('polygon((10 10, 10 20, 20 20, 20 10, 10 10))'),
QSYS2.ST_POLYGON('polygon((30 30, 30 50, 50 50, 50 30, 30 30))')));
结果:
00001
------------------------------------------------------------------
POLYGON ((10.0 10.0, 20.0 10.0, 20.0 20.0, 10.0 20.0, 10.0 10.0))
示例2
查找两个相交多边形之间的差异。
VALUES QSYS2.ST_ASTEXT(
QSYS2.ST_DIFFERENCE(QSYS2.ST_POLYGON('polygon((30 30, 30 50, 50 50, 50 30, 30 30))'),
QSYS2.ST_POLYGON('polygon((40 40, 40 60, 60 60, 60 40, 40 40))')));
结果:
00001
-------------------------------------------------------------------------------------------
POLYGON ((30.0 50.0, 30.0 30.0, 50.0 30.0, 50.0 40.432460999999996, 40.0 40.0,
40.0 50.431312999999996, 30.0 50.0))
