Bagikan melalui


Filter (Jenis Data geografi)

Berlaku untuk: SQL ServerAzure SQL Database Azure SQL Managed Instance

Metode yang menawarkan metode persimpangan khusus indeks yang cepat untuk menentukan apakah instans geografi berpotongan dengan instans geografi lain, dengan asumsi indeks tersedia.

Mengembalikan 1 jika instans geografi berpotensi beririsan dengan instans geografi lain. Metode ini dapat menghasilkan pengembalian positif palsu, dan hasil yang tepat mungkin bergantung pada rencana. Mengembalikan nilai 0 yang akurat (pengembalian negatif benar) jika tidak ada persimpangan instans geografi yang ditemukan.

Dalam kasus di mana indeks tidak tersedia, atau tidak digunakan, metode akan mengembalikan nilai yang sama dengan STIntersects() ketika dipanggil dengan parameter yang sama.

Sintaksis

  
.Filter ( other_geography )  

Catatan

Untuk melihat sintaks Transact-SQL untuk SQL Server 2014 (12.x) dan versi yang lebih lama, lihat Dokumentasi versi sebelumnya.

Argumen

other_geography
Adalah instans geografi lain untuk dibandingkan dengan instans tempat Filter() dipanggil.

Jenis Kembalian

Jenis pengembalian SQL Server: bit

Jenis pengembalian CLR: SqlBoolean

Keterangan

Metode ini tidak deterministik dan tidak tepat.

Contoh

Contoh berikut menggunakan Filter() untuk menentukan apakah dua geography instans saling bersinggungan.

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;  

Lihat Juga

Metode yang Diperluas pada Instans Geografi
STIntersects (Jenis Data geografi)