Teilen über


STCurveN (geometry-Datentyp)

Gilt für: SQL Server Azure SQL-Datenbank Azure SQL verwaltete Instanz SQL Analytics-Endpunkt in Microsoft Fabric Warehouse in Microsoft Fabric Warehouse in Microsoft Fabric

Gibt die von einer Instanz von geometry angegebene Kurve zurück, bei der es sich um eine LineString, CircularString, CompoundCurveoder MultiLineStringhandelt.

Syntax

  
.STCurveN ( curve_index )  

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

curve_index
Ein int -Ausdruck zwischen 1 und der Anzahl der Kurven in der geometry -Instanz.

Rückgabetypen

SQL Server-Rückgabetyp: geometry

CLR-Rückgabetyp: SqlGeometry

Ausnahmen

Wenn curve_index< 1 ist, wird der Fehler ArgumentOutOfRangeException ausgelöst.

Bemerkungen

NULL wird in folgenden Fällen zurückgegeben:

  • Die geometry -Instanz ist deklariert, aber nicht instanziiert.

  • Die geometry -Instanz ist leer.

  • curve_index überschreitet die Anzahl der Kurven in der geometry -Instanz.

  • Bei der geometry -Instanz handelt es sich um einen Point, MultiPoint, ein Polygon, CurvePolygonoder MultiPolygon

Beispiele

A. Verwenden von STCurveN() in einer CircularString-Instanz

Im folgenden Beispiel wird die zweite Kurve in einer Instanz von CircularString zurückgegeben:

 DECLARE @g geometry = 'CIRCULARSTRING(0 0, 1 2.1082, 3 6.3246, 0 7, -3 6.3246, -1 2.1082, 0 0)';  
 SELECT @g.STCurveN(2).ToString();

Im weiter oben in diesem Thema angegebenen Beispiel wird Folgendes zurückgegeben:

CIRCULARSTRING (3 6.3246, 0 7, -3 6.3246)

B. Verwenden von STCurveN() in einer CompoundCurve-Instanz mit einer CircularString-Instanz

Im folgenden Beispiel wird die zweite Kurve in einer Instanz von CompoundCurve zurückgegeben:

 DECLARE @g geometry = 'COMPOUNDCURVE(CIRCULARSTRING(0 0, 1 2.1082, 3 6.3246, 0 7, -3 6.3246, -1 2.1082, 0 0))';  
 SELECT @g.STCurveN(2).ToString();

Im weiter oben in diesem Thema angegebenen Beispiel wird Folgendes zurückgegeben:

CIRCULARSTRING (3 6.3246, 0 7, -3 6.3246)

C. Verwenden von STCurveN() in einer CompoundCurve-Instanz mit drei CircularString-Instanzen

Im folgenden Beispiel wird eine Instanz von CompoundCurve , die drei separate Instanzen von CircularString kombiniert, in der gleichen Kurvensequenz wie im vorherigen Beispiel zurückgegeben:

 DECLARE @g geometry = 'COMPOUNDCURVE (CIRCULARSTRING (0 0, 1 2.1082, 3 6.3246), CIRCULARSTRING(3 6.3246, 0 7, -3 6.3246), CIRCULARSTRING(-3 6.3246, -1 2.1082, 0 0))';  
 SELECT @g.STCurveN(2).ToString();

Im weiter oben in diesem Thema angegebenen Beispiel wird Folgendes zurückgegeben:

CIRCULARSTRING (3 6.3246, 0 7, -3 6.3246)

Die Ergebnisse sind für die vorherigen drei Beispiele gleich. Unabhängig vom WKT (Well-known Text)-Format, das bei der Eingabe der gleichen Kurvensequenz verwendet wird, die von STCurveN() zurückgegebenen Ergebnisse sind bei Verwendung einer CompoundCurve -Instanz gleich.

D: Überprüfen des Parameters vor Aufruf von STCurveN()

Im folgenden Beispiel wird gezeigt, wie die Gültigkeit von @n vor dem Aufruf der STCurveN()-Methode sichergestellt wird:

 DECLARE @g geometry;  
 DECLARE @n int;  
 SET @n = 3;  
 SET @g = geometry::Parse('CIRCULARSTRING(0 0, 1 2.1082, 3 6.3246, 0 7, -3 6.3246, -1 2.1082, 0 0)');  
 IF @n >= 1 AND @n <= @g.STNumCurves()  
 BEGIN  
 SELECT @g.STCurveN(@n).ToString();  
 END

Siehe auch

STNumCurves (geometry-Datentyp)
OGC-Methoden für geometry-Instanzen