STSymDifference (geometry Data Type)
Applies to: SQL Server Azure SQL Database Azure SQL Managed Instance SQL analytics endpoint in Microsoft Fabric Warehouse in Microsoft Fabric
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 )
Note
To view Transact-SQL syntax for SQL Server 2014 (12.x) and earlier versions, see Previous versions documentation.
Arguments
other_geometry
Is another geometry instance in addition to the instance on which STSymDifference()
is being invoked.
Return Types
SQL Server 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
משוב
https://aka.ms/ContentUserFeedback.
בקרוב: במהלך 2024, נפתור בעיות GitHub כמנגנון המשוב לתוכן ונחליף אותו במערכת משוב חדשה. לקבלת מידע נוסף, ראה:שלח והצג משוב עבור