Filter(geography 数据类型)

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

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

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

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

语法

  
.Filter ( other_geography )  

注意

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

参数

other_geography
与对其调用 Filter() 的实例进行比较的其他 geography 实例

返回类型

SQL Server 返回类型:bit

CLR 返回类型:SqlBoolean

注解

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

示例

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

另请参阅

地理实例上的扩展方法
STIntersects(geography 数据类型)