Filter (tipo de dados de geometria)

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

Um método que oferece um maneira de interseção rápida e somente de índice para determinar se uma instância de geometry intersecciona outra instância de geometry, considerando que um índice esteja disponível.

Retornará 1 se uma instância de geometry possivelmente interseccionar outra instância de geometry. Esse método pode gerar um retorno falso positivo e o resultado exato poderá depender do plano. Retornará um valor 0 preciso (retorno verdadeiro negativo) se não for localizada nenhuma intersecção de instâncias de geometria.

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_geometry )  

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_geometry
É outra instância de geometry a ser comparada 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 geometry.

CREATE TABLE sample (id int primary key, g geometry);  
GO  
INSERT INTO sample VALUES  
   (0, geometry::Point(0, 0, 0)),  
   (1, geometry::Point(0, 1, 0)),  
   (2, geometry::Point(0, 2, 0)),  
   (3, geometry::Point(0, 3, 0)),  
   (4, geometry::Point(0, 4, 0));  
  
CREATE SPATIAL INDEX sample_idx ON sample(g)  
WITH (bounding_box = (-8000, -8000, 8000, 8000));  
GO  
SELECT id  
FROM sample   
WHERE g.Filter(geometry::Parse('POLYGON((-1 -1, 1 -1, 1 1, -1 1, -1 -1))')) = 1;  

Consulte Também

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