STSymDifference (type de données geometry)
S’applique à : SQL Server Azure SQL Database Azure SQL Managed Instance Base de données SQL dans Microsoft Fabric
Retourne un objet qui représente tous les points situés dans une instance geometry particulière ou toute autre instance geometry, mais pas les points situés dans les deux instances à la fois.
Syntaxe
.STSymDifference ( other_geometry )
Arguments
other_geometry
Autre instance geometry en plus de l’instance sur laquelle STSymDifference()
est appelé.
Types de retour
Type de retour SQL Server : geometry
Type de retour CLR : SqlGeometry
Remarques
Cette méthode retourne toujours une valeur Null si les SRID (ID de référence spatiale) des instances geometry ne correspondent pas. Le résultat peut contenir des segments d'arc de cercle uniquement si les instances d'entrée contiennent des segments d'arc de cercle.
Exemples
R. Calcul de la différence symétrique de deux instances Polygon
L'exemple suivant utilise STSymDifference()
pour calculer la différence symétrique entre deux instances 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. Calcul de la différence symétrique entre une instance CurvePolygon et une instance Polygon
L'exemple suivant retourne un GeometryCollection
qui représente la différence symétrique entre un CurvePolygon
et un 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. Utilisation de STSymDifference() sur une instance CurvePolygon avec une instance Polygon inscrite
L'exemple suivant retourne une instance CurvePolygon
avec un anneau Polygon
intérieur qui représente la différence symétrique entre les deux instances comparées.
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();