Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Aplica-se a:SQL Server
Banco de Dados SQL do
AzureInstância
Gerenciada de SQL do AzureBanco de dados SQL no Microsoft Fabric
Retorna um objeto que representa o conjunto de pontos de uma instância de geography que reside fora de outra instância de geography.
Syntax
.STDifference ( other_geography )
Arguments
other_geography
É outra instância de geography que indica quais pontos devem ser removidos da instância na qual STDifference() está sendo invocado.
Tipos de retorno
Tipo de retorno do SQL Server: geography
Tipo de retorno do CLR: SqlGeography
Exceptions
Esse método gera uma ArgumentException se a instância contém uma borda oposta.
Remarks
Esse método sempre retorna nulo se os SRIDs (identificadores de referência espacial) das instâncias de geography não são correspondentes.
No SQL Server, o conjunto de possíveis resultados retornado no servidor foi estendido para instâncias FullGlobe. SQL Server oferece suporte a instâncias espaciais maiores do que um hemisfério. O resultado poderá conter segmentos de arco circular apenas se as instâncias de entrada contiverem segmentos de arco circulares. Esse método não é preciso.
Examples
A. Computando a diferença entre duas instâncias de geografia
O exemplo a seguir usa STDifference() para calcular a diferença entre duas instâncias 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. Usando um FullGlobe com STDifference()
O exemplo a seguir usa a instância de FullGlobe. O primeiro resultado é uma GeometryCollection vazia e o segundo resultado é uma instância de Polygon.
STDifference() retorna uma GeometryCollection vazia quando uma instância de FullGlobe for o parâmetro. Todo ponto em uma instância de geography de invocação é contido em uma instância 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();