Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Si applica a:SQL Server
Azure SQL Database
Azure SQL Istanza gestita
Database SQL in Microsoft Fabric
Restituisce la curva specificata da un'istanza geometry e corrispondente a LineString, CircularString, CompoundCurve o MultiLineString.
Syntax
.STCurveN ( curve_index )
Arguments
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
Exceptions
Se curve_index< 1 viene generata un'eccezione ArgumentOutOfRangeException.
Remarks
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
Examples
A. 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
Vedere anche
STNumCurves (tipo di dati geometry)
Metodi OGC sulle istanze di geometria