Filter (type de données geography)
Méthode rapide d'intersection d'index uniquement pour déterminer si une instance geography entre en intersection avec une autre instance geography, en supposant qu'un index soit disponible.
Retourne 1 si une instance geography entre potentiellement en intersection avec une autre instance geography. Cette méthode peut produire un retour de faux positif, et le résultat exact peut dépendre du plan. Retourne une valeur 0 exacte (retour négatif vrai) si aucune intersection d'instances geography n'est trouvée.
Dans les cas où un index n'est pas disponible ou n'est pas utilisé, la méthode retourne les mêmes valeurs que STIntersects() lorsqu'elle est appelée avec les mêmes paramètres.
Syntaxe
.Filter ( other_geography )
Arguments
Terme |
Définition |
other_geography |
Autre instance geography à comparer à l'instance sur laquelle Filter() est appelé. |
Types de retour
SQL Server : bit
Type de retour CLR : SqlBoolean
Notes
Cette méthode n'est pas déterministe et n'est pas précise.
Exemples
L'exemple suivant utilise Filter() pour déterminer si deux instances geography entrent en intersection.
Code
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;
Voir aussi
Référence
STIntersects (type de données geography)