Export (0) Print
Expand All
Expand Minimize

STDifference (geometry Data Type)

 

Applies To: SQL Server 2014, SQL Server 2016 Preview

Returns an object that represents the point set from one geometry instance that does not lie within another geometry instance.

Applies to: SQL Server (SQL Server 2008 through current version), Azure SQL Database.


.STDifference ( other_geometry )

other_geometry

Is another geometry instance indicating which points to remove from the instance on which STDifference() is being invoked.

SQL Server return type: geometry

CLR return type: SqlGeometry

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.

The following example uses STDifference() to compute the difference between two polygons.

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.STDifference(@h).ToString();

The following example uses STDifference() on a CurvePolygon instance.

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))';

-- Note the different results returned by the two SELECT statements

SELECT @h.STDifference(@g).ToString(), @g.STDifference(@h).ToString();

Was this page helpful?
(1500 characters remaining)
Thank you for your feedback

Community Additions

ADD
Show:
© 2015 Microsoft