STCurveN (tipo di dati geometry)

Si applica a:SQL Server database SQL di Azure Istanza gestita di SQL di Azure Endpoint di analisiSQL in Microsoft FabricWarehouse in Microsoft Fabric

Restituisce la curva specificata da un'istanza geometry e corrispondente a LineString, CircularString, CompoundCurve o MultiLineString.

Sintassi

  
.STCurveN ( curve_index )  

Nota

Per visualizzare la sintassi Transact-SQL per SQL Server 2014 (12.x) e versioni precedenti, vedere la documentazione delle versioni precedenti.

Argomenti

curve_index
Espressione int compresa tra 1 e il numero di curve nell'istanza geometry.

Tipi restituiti

Tipo SQL Server restituito: geometry

Tipo CLR restituito: SqlGeometry

Eccezioni

Se curve_index< 1 viene generata un'eccezione ArgumentOutOfRangeException.

Osservazioni:

NULL viene restituito in uno dei casi seguenti:

  • L'istanza geometry viene dichiarata, ma non ne viene creata un'istanza

  • L'istanza geometry è vuota

  • curve_index supera il numero di curve nell'istanza geometry

  • L'istanza geometry è di tipo Point, MultiPoint, Polygon, CurvePolygon o MultiPolygon

Esempi

R. Utilizzo di STCurves() in un'istanza CircularString

Nell'esempio seguente viene restituita la seconda curva in un'istanza CircularString:

 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();

Nell'esempio riportato in precedenza in questo argomento viene restituito:

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

B. Utilizzo di STCurveN() in un'istanza CompoundCurve con un'istanza CircularString

Nell'esempio seguente viene restituita la seconda curva in un'istanza CompoundCurve:

 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();

Nell'esempio riportato in precedenza in questo argomento viene restituito:

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

C. Utilizzo di STCurveN() in un'istanza CompoundCurve con tre istanze CircularString

Nell'esempio seguente viene utilizzata un'istanza CompoundCurve che combina tre istanze CircularString separate nella stessa sequenza di curve dell'esempio precedente:

 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();

Nell'esempio riportato in precedenza in questo argomento viene restituito:

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

Si noti che i risultati sono gli stessi dei tre esempi precedenti. Indipendentemente dal formato WKT (well-known text) utilizzato per immettere la stessa sequenza di curve, i risultati restituiti da STCurveN() sono gli stessi quando viene utilizzata un'istanza CompoundCurve.

D. Convalida del parametro prima della chiamata a STCurveN()

L'esempio seguente illustra come assicurarsi che @n sia valido prima di chiamare il metodo STCurveN():

 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

Vedi anche

STNumCurves (tipo di dati geometry)
Metodi OGC sulle istanze di geometria