STCurveN(geometry 데이터 형식)
적용 대상: Microsoft Fabric의 SQL ServerAzure SQL Database Azure SQL Managed Instance SQL 데이터베이스
LineString, CircularString, CompoundCurve 또는 MultiLineString인 기하 도형 인스턴스에서 지정된 곡선을 반환합니다.
구문
.STCurveN ( curve_index )
인수
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