Categories:

지리 공간 함수

# ST_DIFFERENCE¶

Given two input GEOGRAPHY objects, returns a GEOGRAPHY object that represents the points in the first object that are not in the second object (i.e. the difference between the two objects).

See also:

## Syntax¶

ST_DIFFERENCE( <geography_expression_1> , <geography_expression_2> )


## Arguments¶

geography_expression_1

A GEOGRAPHY object.

geography_expression_2

A GEOGRAPHY object.

## Returns¶

The function returns a value of type GEOGRAPHY.

If all points of geography_expression_1 are in geography_expression_2 (i.e. the difference is an empty set of points), the function returns NULL.

## Usage Notes¶

• If any vertex of one input object is on the boundary of the other input object (excluding the vertices), the output might not be accurate.

• The function is not guaranteed to produce normalized and/or minimal results. For example, an output could consist of a LineString containing several Points that actually forms just one straight segment.

## Examples¶

The following example returns a GEOGRAPHY object that represents the difference between two input GEOGRAPHY objects:

ALTER SESSION SET GEOGRAPHY_OUTPUT_FORMAT = 'WKT';

SELECT ST_DIFFERENCE(
TO_GEOGRAPHY('POLYGON((0 0, 1 0, 2 1, 1 2, 2 3, 1 4, 0 4, 0 0))'),
TO_GEOGRAPHY('POLYGON((3 0, 3 4, 2 4, 1 3, 2 2, 1 1, 2 0, 3 0))'))
AS difference_between_objects;


This example produces the following output:

+-------------------------------------------------------------------------------------------------------------+
| DIFFERENCE_BETWEEN_OBJECTS                                                                                  |
|-------------------------------------------------------------------------------------------------------------|
| POLYGON((1 1,1.5 1.500171359,1 2,1.5 2.500285599,1 3,1.5 3.500399839,1 4,0 4,0 0,1 0,1.5 0.5000571198,1 1)) |
+-------------------------------------------------------------------------------------------------------------+


The following images illustrate the differences in the areas that represent the input and output objects:

Input

Output

맨 위로 이동