Nota
O acceso a esta páxina require autorización. Pode tentar iniciar sesión ou modificar os directorios.
O acceso a esta páxina require autorización. Pode tentar modificar os directorios.
Se aplica a:SQL Server
Azure SQL Database
Instancia
administrada de Azure SQLBase de datos SQL en Microsoft Fabric
Devuelve un objeto que representa el conjunto de puntos de una instancia de geography que queda fuera de otra instancia de geography.
Syntax
.STDifference ( other_geography )
Arguments
other_geography
Es otra instancia de geography que indica los puntos que hay que quitar de la instancia en la que se invoca STDifference().
Tipos de valor devuelto
Tipo de valor devuelto de SQL Server: geography
Tipo de valor devuelto de CLR: SqlGeography
Exceptions
Este método produce una excepción ArgumentException si la instancia contiene un borde opuesto.
Remarks
Este método siempre devuelve NULL si no coinciden los identificadores de referencia espacial (SRID) de las instancias de geography.
En SQL Server, el conjunto de resultados posibles devuelto en el servidor se ha ampliado a las instancias de FullGlobe. SQL Server admite instancias espaciales mayores que un hemisferio. El resultado puede contener segmentos de arco circulares solo si las instancias de entrada contienen segmentos de arco circulares. Este método no es preciso.
Examples
A. Calcular la diferencia entre dos instancias de geografía
En el ejemplo siguiente se usa STDifference() para calcular la diferencia entre dos instancias de geography.
DECLARE @g geography;
DECLARE @h geography;
SET @g = geography::STGeomFromText('POLYGON((-122.358 47.653, -122.348 47.649, -122.348 47.658, -122.358 47.658, -122.358 47.653))', 4326);
SET @h = geography::STGeomFromText('LINESTRING(-122.360 47.656, -122.343 47.656)', 4326);
SELECT @g.STDifference(@h).ToString();
B. Utilizar FullGlobe con STDifference()
En el ejemplo siguiente se utiliza la instancia de FullGlobe. El primer resultado es un elemento GeometryCollection vacío y el segundo resultado es una instancia de Polygon.
STDifference() devuelve un elemento GeometryCollection vacío cuando una instancia de FullGlobe es el parámetro. Todos los puntos de una instancia de geography que se invoca están contenidos en una instancia de FullGlobe.
DECLARE @g geography = 'POLYGON((-122.358 47.653, -122.348 47.649, -122.348 47.658, -122.358 47.658, -122.358 47.653))';
DECLARE @h geography = 'FULLGLOBE';
SELECT @g.STDifference(@h).ToString(),
@h.STDifference(@g).ToString();