STSymDifference (geometry 資料類型)
適用於:SQL Server
Azure SQL 資料庫
Azure SQL 受控執行個體
傳回物件,表示在某個 geometry 執行個體或另一個 geometry 執行個體內的所有點 (但不是同時在這兩個執行個體內的點)。
Syntax
.STSymDifference ( other_geometry )
注意
若要檢視 SQL Server 2014 (12.x) 和更早版本的 Transact-SQL 語法,請參閱舊版文件。
引數
other_geometry
這是除了 STSymDifference()
叫用所在的執行個體之外的另一個 geometry 執行個體。
傳回型別
SQL Server 傳回類型:geometry
CLR 傳回類型:SqlGeometry
備註
如果 geometry 執行個體的空間參考識別碼 (SRID) 不相符,這個方法一律會傳回 Null。 只有當輸入執行個體包含圓弧線段時,結果才能包含圓弧線段。
範例
A. 計算兩個 Polygon 執行個體的對稱差異
下列範例使用 STSymDifference()
來計算兩個 Polygon
執行個體之間的對稱差異。
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.STSymDifference(@h).ToString();
B. 計算 CurvePolygon 和 Polygon 執行個體之間的對稱差異
下列範例會傳回 GeometryCollection
,代表 CurvePolygon
與 Polygon
之間的對稱差異。
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))';
SELECT @h.STSymDifference(@g).ToString();
C. 在具有內切 Polygon 執行個體的 CurvePolygon 執行個體上使用 STSymDifference()
下列範例會傳回具有 CurvePolygon
內環的 Polygon
執行個體,代表兩個相比較執行個體之間的對稱差異。
DECLARE @g geometry = 'CURVEPOLYGON (CIRCULARSTRING (0 -4, 4 0, 0 4, -4 0, 0 -4))';
DECLARE @h geometry = 'POLYGON ((1 -1, 2 -1, 2 1, 1 1, 1 -1))';
SELECT @h.STSymDifference(@g).ToString();
另請參閱
意見反應
https://aka.ms/ContentUserFeedback。
即將登場:在 2024 年,我們將逐步淘汰 GitHub 問題作為內容的意見反應機制,並將它取代為新的意見反應系統。 如需詳細資訊,請參閱:提交並檢視相關的意見反應