Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Si applica a:SQL Server
Database SQL di
AzureIstanza gestita di SQL di
AzureDatabase SQL in Microsoft Fabric
Restituisce un oggetto che rappresenta tutti i punti che si trovano in un'istanza geometry o un'altra istanza geometry, ma non i punti che si trovano in entrambe le istanze.
Syntax
.STSymDifference ( other_geometry )
Arguments
other_geometry
Altra istanza geometry oltre all'istanza sulla quale viene chiamato STSymDifference().
Tipi restituiti
Tipo SQL Server restituito: geometry
Tipo CLR restituito: SqlGeometry
Remarks
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.
Examples
A. Calcolo della differenza simmetrica di due istanze Polygon
Nell'esempio seguente viene utilizzato STSymDifference() per calcolare la differenza simmetrica tra due istanze Polygon.
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. Calcolo della differenza simmetrica tra un'istanza CurvePolygon e un'istanza Polygon
Nell'esempio seguente viene restituito GeometryCollection che rappresenta la differenza simmetrica tra CurvePolygon e 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. Utilizzo di STSymDifference() in un'istanza CurvePolygon con un'istanza Polygon inscritta
Nell'esempio seguente viene restituita un'istanza CurvePolygon con un anello Polygon interno che rappresenta la differenza simmetrica tra le due istanze confrontate.
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();