STDifference (tipo di dati geometry)
Si applica a: SQL Server database SQL di Azure Istanza gestita di SQL di Azure database SQL in Microsoft Fabric
Restituisce un oggetto che rappresenta il punto impostato da un'istanza geometry che non si trova all'interno di un'altra istanza geometry.
Sintassi
.STDifference ( other_geometry )
Argomenti
other_geometry
Altra istanza geometry che indica i punti da rimuovere dall'istanza sulla quale viene richiamato STDifference()
.
Tipi restituiti
Tipo SQL Server restituito: geometry
Tipo CLR restituito: SqlGeometry
Osservazioni:
Questo metodo restituisce sempre Null se gli identificatori SRID delle istanze geometry non corrispondono. Il risultato può contenere segmenti di arco circolare solo se le istanze di input contengono segmenti di arco circolare.
Esempi
R. Calcolo della differenza tra due istanze Polygon
Nell'esempio seguente viene utilizzato STDifference()
per calcolare la differenza tra due poligoni.
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();
B. Chiamata di STDifference() in un'istanza CurvePolygon
Nell'esempio seguente viene utilizzato STDifference() in un'istanza CurvePolygon.
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();