Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Dotyczy:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Baza danych SQL w usłudze Microsoft Fabric
Zwraca obiekt reprezentujący zestaw punktów z jednego wystąpienia geometrii , który nie leży w innym wystąpieniu geometrii .
Syntax
.STDifference ( other_geometry )
Arguments
other_geometry
Jest innym wystąpieniem geometrycznym wskazującym, które punkty należy usunąć z wystąpienia, na którym STDifference() jest wywoływana.
Typy zwracane
Zwracany typ programu SQL Server: geometria
Typ zwracania CLR: SqlGeometry
Remarks
Ta metoda zawsze zwraca wartość null, jeśli identyfikatory odwołań przestrzennych (SRID) wystąpień geometrii nie są zgodne. Wynik może zawierać segmenty łuku cyklicznego tylko wtedy, gdy wystąpienia wejściowe zawierają segmenty łuku cyklicznego.
Examples
A. Obliczanie różnicy między dwoma wystąpieniami wielokątowymi
W poniższym przykładzie użyto STDifference() metody do obliczenia różnicy między dwoma wielokątami.
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. Wywoływanie metody STDifference() w wystąpieniu CurvePolygon
W poniższym przykładzie użyto metody STDifference() w wystąpieniu CurvePolygon.
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();