Filter (tipo de dados de geografia)

Aplica-se a:SQL ServerBanco de Dados SQL do AzureInstância Gerenciada de SQL do Azure

Um método que oferece um método rápido de interseção somente de índice para determinar se uma instância de geography é interseccionada por outra instância de geography, supondo que um índice esteja disponível.

Retorna 1 se uma instância de geography intercepta potencialmente outra instância de geography. Esse método pode gerar um retorno de falso positivo e o resultado exato poderá ser dependente de plano. Retorna um valor 0 preciso (retorno negativo verdadeiro) se nenhuma intersecção de instâncias de geography é encontrada.

Nos casos em que um índice não estiver disponível ou não for usado, o método retornará os mesmos valores que STIntersects() quando for chamado com os mesmos parâmetros.

Sintaxe

  
.Filter ( other_geography )  

Observação

Para exibir a sintaxe do Transact-SQL para o SQL Server 2014 (12.x) e versões anteriores, confira a Documentação das versões anteriores.

Argumentos

other_geography
É outra instância de geography para comparação com a instância na qual Filter() é invocado.

Tipos de retorno

Tipo de retorno do SQL Server: bit

Tipo de retorno do CLR: SqlBoolean

Comentários

Esse método não é determinista e não é preciso.

Exemplos

O exemplo a seguir usa Filter() para determinar se há interseção entre duas instâncias de geography.

CREATE TABLE sample (id int primary key, g geography);  
INSERT INTO sample VALUES  
   (0, geography::Point(45, -120, 4326)),  
   (1, geography::Point(45, -120.1, 4326)),  
   (2, geography::Point(45, -120.2, 4326)),  
   (3, geography::Point(45, -120.3, 4326)),  
   (4, geography::Point(45, -120.4, 4326));  
  
CREATE SPATIAL INDEX sample_idx on sample(g);  
SELECT id  
FROM sample   
WHERE g.Filter(geography::Parse(  
   'POLYGON((-120.1 44.9, -119.9 44.9, -119.9 45.1, -120.1 45.1, -120.1 44.9))')) = 1;  

Consulte Também

Métodos estendidos em instâncias geography
STIntersects (tipo de dados geography)