Freigeben über


STCurveN (geometry-Datentyp)

Gilt für:SQL ServerAzure SQL-DatenbankAzure SQL Managed InstanceSQL Analytics-Endpunkt in Microsoft FabricWarehouse 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