STCurveN(geometry 데이터 형식)

적용 대상: Microsoft Fabric의 Microsoft FabricWarehouse에 있는 SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceSQL 분석 엔드포인트

LineString, CircularString, CompoundCurve 또는 MultiLineString인 기하 도형 인스턴스에서 지정된 곡선을 반환합니다.

Syntax

  
.STCurveN ( curve_index )  

참고 항목

SQL Server 2014(12.x) 및 이전 버전에 대한 Transact-SQL 구문을 보려면 이전 버전 설명서를 참조 하세요.

인수

curve_index
기하 도형 인스턴스의 곡선 수와 1 사이의 int 식입니다.

반환 형식

SQL Server 반환 형식: geometry

CLR 반환 형식: SqlGeometry

예외

curve_index< 1인 경우는 ArgumentOutOfRangeException을 throw합니다.

설명

NULL 은 다음 중 어느 것이 발생할 때 반환됩니다.

  • 기하 도형 인스턴스가 선언되었지만 인스턴스화되지는 않았습니다.

  • 기하 도형 인스턴스가 비어 있습니다.

  • curve_index 기하 도형 인스턴스의 곡선 수를 초과합니다.

  • geometry 인스턴스가 Point, MultiPoint, Polygon, CurvePolygon 또는 MultiPolygon인 경우

예제

A. CircularString 인스턴스에서 STCurveN() 사용

다음 예제에서는 인스턴스의 두 번째 곡선을 반환합니다.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();

이 항목의 앞부분에 있는 예제에서는 다음을 반환합니다.

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

B. CircularString 인스턴스 하나와 함께 CompoundCurve 인스턴스에 STCurveN() 사용

다음 예제에서는 인스턴스의 두 번째 곡선을 반환합니다.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();

이 항목의 앞부분에 있는 예제에서는 다음을 반환합니다.

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

C. 3개의 CircularString 인스턴스가 있는 CompoundCurve 인스턴스에서 STCurveN() 사용

다음 예에서는 별도의 CompoundCurve 인스턴스 세 개를 이전 예와 동일한 곡선 시퀀스에 조합하는 CircularString 인스턴스를 사용합니다.

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

이 항목의 앞부분에 있는 예제에서는 다음을 반환합니다.

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

이전의 세 가지 예와 결과가 동일합니다. 동일한 곡선 시퀀스를 입력하는 데 사용되는 WKT(잘 알려진 텍스트) 형식 중에서 인스턴스를 사용할 때 CompoundCurve 반환되는 STCurveN() 결과는 동일합니다.

D. STCurveN()을 호출하기 전에 매개 변수 유효성 검사

다음 예제에서는 메서드를 호출STCurveN()하기 전에 유효한지 확인하는 @n 방법을 보여줍니다.

 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

참고 항목

STNumCurves(geometry 데이터 형식)
geometry 인스턴스의 OGC 메서드