Skip to content

Latest commit

 

History

History
79 lines (61 loc) · 2.95 KB

stsymdifference-geometry-data-type.md

File metadata and controls

79 lines (61 loc) · 2.95 KB
title description author ms.author ms.date ms.service ms.subservice ms.topic ms.custom f1_keywords helpviewer_keywords dev_langs monikerRange
STSymDifference (geometry Data Type)
STSymDifference (geometry Data Type)
MladjoA
mlandzic
02/06/2020
sql
t-sql
reference
ignite-2024
STSymDifference_TSQL
STSymDifference (geometry Data Type)
STSymDifference (geometry Data Type)
TSQL
=azuresqldb-current || >=sql-server-2016 || >=sql-server-linux-2017 || =azuresqldb-mi-current || =fabric

STSymDifference (geometry Data Type)

[!INCLUDE SQL Server Azure SQL Database Azure SQL Managed Instance FabricSQLDB]

Returns an object that represents all points that are either in one geometry instance or another geometry instance, but not those points that lie in both instances.

Syntax

  
.STSymDifference ( other_geometry )  

Arguments

other_geometry
Is another geometry instance in addition to the instance on which STSymDifference() is being invoked.

Return Types

[!INCLUDEssNoVersion] return type: geometry

CLR return type: SqlGeometry

Remarks

This method always returns null if the spatial reference IDs (SRIDs) of the geometry instances do not match. The result may contain circular arc segments only if the input instances contain circular arc segments.

Examples

A. Computing the symmetric difference of two Polygon instances

The following example uses STSymDifference() to compute the symmetric difference of two Polygon instances.

DECLARE @g geometry;  
DECLARE @h geometry;  
SET @g = geometry::STGeomFromText('POLYGON((0 0, 0 2, 2 2, 2 0, 0 0))', 0);  
SET @h = geometry::STGeomFromText('POLYGON((1 1, 3 1, 3 3, 1 3, 1 1))', 0);  
SELECT @g.STSymDifference(@h).ToString();  

B. Computing the symmetric difference between a CurvePolygon and a Polygon instance

The following example returns a GeometryCollection that represents the symmetric difference between a CurvePolygon and a Polygon.

 DECLARE @g geometry = 'CURVEPOLYGON (CIRCULARSTRING (0 -4, 4 0, 0 4, -4 0, 0 -4))';  
 DECLARE @h geometry = 'POLYGON ((1 -1, 5 -1, 5 3, 1 3, 1 -1))';  
 SELECT @h.STSymDifference(@g).ToString();

C. Using STSymDifference() on CurvePolygon instance with an inscribed Polygon instance

The following example returns a CurvePolygon instance with an interior Polygon ring that represents the symmetric difference between the two instances compared.

 DECLARE @g geometry = 'CURVEPOLYGON (CIRCULARSTRING (0 -4, 4 0, 0 4, -4 0, 0 -4))';  
 DECLARE @h geometry = 'POLYGON ((1 -1, 2 -1, 2 1, 1 1, 1 -1))';  
 SELECT @h.STSymDifference(@g).ToString();

See Also

OGC Methods on Geometry Instances