Filter(geometry 数据类型)

适用于:SQL ServerAzure SQL 数据库Azure SQL 托管实例

一种方法,可提供一种快速、仅索引相交的方法,用于确定一个 geometry 实例是否与另一个 geometry 实例相交(假定有可用索引)。

如果一个 geometry 实例与另一个 geometry 实例存在相交的可能,则返回 1。 该方法可能产生假正返回,并且确切结果可能依赖于计划。 如果 geometry 实例之间不存在相交,则返回精确的 0 值(真负返回)。

在无可用索引或未使用索引的情况下,该方法返回的值将与使用相同参数调用 STIntersects() 返回的值相同

语法

  
.Filter ( other_geometry )  

注意

若要查看 SQL Server 2014 (12.x) 及更早版本的 Transact-SQL 语法,请参阅早期版本文档

参数

other_geometry
将与调用 Filter() 的实例进行比较的另一个 geometry 实例

返回类型

SQL Server 返回类型:bit

CLR 返回类型:SqlBoolean

注解

此方法是不具有确定性的方法,而且不精确。

示例

下面的示例使用 Filter() 确定两个 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;  

另请参阅

几何图形实例上的扩展方法
STIntersects(geometry 数据类型)