STDifference (geometry 資料類型)

適用範圍: 是SQL Server (所有支援的版本) 是Azure SQL Database 是Azure SQL 受控執行個體

傳回物件,表示不在另一個 geometry 執行個體內之某個 geometry 執行個體的點集合。

語法

  
.STDifference ( other_geometry )  

注意

若要檢視 SQL Server 2014 與更早版本的 Transact-SQL 語法,請參閱舊版文件

引數

other_geometry
這是另一個 geometry 執行個體,指示要從 STDifference() 叫用所在的執行個體中移除哪些點。

傳回型別

SQL Server 傳回類型:geometry

CLR 傳回類型:SqlGeometry

備註

如果 geometry 執行個體的空間參考識別碼 (SRID) 不相符,這個方法一律會傳回 Null。 只有當輸入執行個體包含圓弧線段時,結果才能包含圓弧線段。

範例

A. 計算兩個 Polygon 執行個體之間的差異

下列範例使用 STDifference() 來計算兩個多邊形之間的差異。

DECLARE @g geometry;  
DECLARE @h geometry;  
SET @g = geometry::STGeomFromText('POLYGON((0 0, 0 2, 2 2, 2 0, 0 0))', 0);  
SET @h = geometry::STGeomFromText('POLYGON((1 1, 3 1, 3 3, 1 3, 1 1))', 0);  
SELECT @g.STDifference(@h).ToString();  

B. 在 CurvePolygon 執行個體上叫用 STDifference()

下列範例會在 CurvePolygon 執行個體上使用 STDifference()。

 DECLARE @g geometry = 'CURVEPOLYGON (CIRCULARSTRING (0 -4, 4 0, 0 4, -4 0, 0 -4))';  
 DECLARE @h geometry = 'POLYGON ((1 -1, 5 -1, 5 3, 1 3, 1 -1))';  
 -- Note the different results returned by the two SELECT statements  
 SELECT @h.STDifference(@g).ToString(), @g.STDifference(@h).ToString();

另請參閱

幾何例項上的 OGC 方法