Freigeben über


Filter (geometry-Datentyp)

Gilt für:SQL ServerAzure SQL-DatenbankAzure SQL Managed Instance

Eine Methode, die eine schnelle, nur indexbezogene Schnittmethode bietet, um zu ermitteln, ob eine geometry -Instanz eine andere geometry -Instanz überschneidet, vorausgesetzt, dass ein Index verfügbar ist.

Gibt 1 zurück, wenn eine geometry -Instanz möglicherweise eine andere geometry -Instanz überschneidet. Diese Methode erzeugt eventuell eine falsche positive Rückgabe, und das genaue Ergebnis ist unter Umständen planabhängig. Gibt einen genauen Wert 0 (wahr negative Rückgabe) zurück, wenn keine Überschneidung von geometry -Instanzen gefunden wird.

Wenn kein Index verfügbar ist oder verwendet wird, gibt die Methode dieselben Werte zurück wie STIntersects() , wenn diese Methode mit denselben Parametern aufgerufen wird.

Syntax

  
.Filter ( other_geometry )  

Hinweis

Informationen zum Anzeigen der Transact-SQL-Syntax für SQL Server 2014 (12.x) und früher finden Sie unter Dokumentation zu früheren Versionen.

Argumente

other_geometry
Eine andere geometry-Instanz zum Vergleich mit der Instanz, in der Filter() aufgerufen wird.

Rückgabetypen

SQL Server-Rückgabetyp: bit

CLR-Rückgabetyp: SqlBoolean

Hinweise

Diese Methode ist weder deterministisch noch präzise.

Beispiele

Im folgenden Beispiel wird Filter() verwendet, um festzustellen, wo sich zwei geometry -Instanzen schneiden.

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;  

Weitere Informationen

Erweiterte Methoden für geometry-Instanzen
STIntersects (geometry-Datentyp)