STCurveN (tipo de datos geometry)

Se aplica a:SQL ServerAzure SQL DatabaseAzure SQL Managed InstancePunto de conexión de análisis SQL en Microsoft FabricAlmacenamiento en Microsoft Fabric

Devuelve la curva especificada a partir de una instancia de geometry que es LineString, CircularString, CompoundCurve o MultiLineString.

Sintaxis

  
.STCurveN ( curve_index )  

Nota:

Para ver la sintaxis de Transact-SQL para SQL Server 2014 (12.x) y versiones anteriores, consulte Versiones anteriores de la documentación.

Argumentos

curve_index
Es una expresión int entre 1 y el número de curvas de la instancia de geometry.

Tipos de valor devuelto

Tipo de valor devuelto de SQL Server: geometry

Tipo de valor devuelto de CLR: SqlGeometry

Excepciones

Si curve_index< 1, se produce una ArgumentOutOfRangeException.

Observaciones

Se devuelve NULL cuando se da alguna de las condiciones siguientes:

  • La instancia de geometry se declara, pero no se crea.

  • La instancia de geometry está vacía.

  • curve_index supera el número de curvas de la instancia de geometry.

  • La instancia de geometry es un valor Point, MultiPoint, Polygon, CurvePolygon o MultiPolygon

Ejemplos

A. Usar STCurveN() en una instancia de CircularString

En el siguiente ejemplo se devuelve la segunda curva de una instancia de 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();

El ejemplo anterior de este tema devuelve:

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

B. Usar STCurveN() en una instancia de CompoundCurve con una instancia de CircularString

En el siguiente ejemplo se devuelve la segunda curva de una instancia de 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();

El ejemplo anterior de este tema devuelve:

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

C. Usar STCurveN() en una instancia de CompoundCurve con tres instancias de CircularString

El siguiente ejemplo utiliza un CompoundCurve crea instancias que combina tres instancias CircularString independientes en la misma secuencia de la curva como el ejemplo anterior:

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

El ejemplo anterior de este tema devuelve:

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

Observe que los resultados son los mismos para los tres ejemplos anteriores. Cualquier formato WKT (texto bien conocido) se utiliza para especificar la misma secuencia de la curva, los resultados que devuelve STCurveN() son iguales cuando se usa una instancia de CompoundCurve.

D. Validar el parámetro antes de llamar a STCurveN()

En el ejemplo siguiente se muestra cómo asegurarse de que @n es válido antes de llamar al método 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

Consulte también

STNumCurves (tipo de datos geometry)
Métodos de OGC en instancias de geometry