STSymDifference (tipo de datos geometry)
Se aplica a:SQL ServerAzure SQL DatabaseAzure SQL Managed InstancePunto de conexión de análisis SQL en Microsoft FabricAlmacenamiento en Microsoft Fabric
Devuelve un objeto que representa todos los puntos que están en una instancia de geometry o en otra instancia de geometry, pero no los puntos que pertenecen a ambas instancias.
Sintaxis
.STSymDifference ( other_geometry )
Nota:
Para ver la sintaxis de Transact-SQL para SQL Server 2014 (12.x) y versiones anteriores, consulte Versiones anteriores de la documentación.
Argumentos
other_geometry
Es la otra instancia de geometry además de la instancia en la que se invoca STSymDifference()
.
Tipos de valor devuelto
Tipo de valor devuelto de SQL Server: geometry
Tipo de valor devuelto de CLR: SqlGeometry
Observaciones
Este método siempre devuelve NULL si no coinciden los identificadores de referencia espacial (SRID) de las instancias de geometry. El resultado puede contener segmentos de arco circulares solo si las instancias de entrada contienen segmentos de arco circulares.
Ejemplos
A. Calcular la diferencia simétrica entre dos instancias de Polygon
En el ejemplo siguiente se utiliza STSymDifference()
para calcular la diferencia simétrica entre dos instancias de 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. Calcular la diferencia simétrica entre una instancia de CurvePolygon y una instancia de Polygon
En el siguiente ejemplo se devuelve un objeto GeometryCollection
que representa la diferencia simétrica entre un objeto CurvePolygon
y un objeto 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. Usar STSymDifference () en una instancia de CurvePolygon con una instancia de Polygon inscrita
En el siguiente ejemplo se devuelve una instancia de CurvePolygon
con un anillo Polygon
interior que representa la diferencia simétrica entre las dos instancias comparadas.
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();
Consulte también
Comentarios
https://aka.ms/ContentUserFeedback.
Próximamente: A lo largo de 2024 iremos eliminando gradualmente GitHub Issues como mecanismo de comentarios sobre el contenido y lo sustituiremos por un nuevo sistema de comentarios. Para más información, vea:Enviar y ver comentarios de