다음을 통해 공유


st_setpoint 함수

적용 대상:yes Databricks SQL 확인 표시 예 Databricks Runtime 17.1 이상으로 표시

비고

이 기능은 Databricks SQL 클래식 웨어하우스에서 사용할 수 없습니다. Databricks SQL 웨어하우스에 대한 자세한 내용은 SQL 웨어하우스 유형을 참조하세요.

입력 라인스트링 GEOGRAPHY 또는 GEOMETRY 값의 n번째 지점을 설정합니다.

Syntax

st_setpoint ( geo1Expr, indexExpr, geo2Expr )

Arguments

  • geo1Expr: 줄 문자열을 나타내는 A GEOGRAPHY 또는 GEOMETRY 값입니다.
  • indexExpr, INTEGER: 선형 문자열에서 새 점을 설정하도록 해야 하는 1부터 시작하는 위치를 나타내는 값입니다.
  • geo2Expr: 점을 나타내는 A GEOGRAPHY 또는 GEOMETRY 값입니다.

Returns

두 값이 모두 GEOGRAPHYgeo1Expr 형식인 경우에는 geo2Expr 형식의 값이 되며, 두 값이 모두 GEOGRAPHYGEOMETRY 형식인 경우에는 geo1Expr 형식의 geo2Expr 값이 됩니다. 만약 indexExpr이 양수이면 반환된 GEOGRAPHY 또는 GEOMETRY 값은 새로운 선형 객체로, indexExpr번째 점(왼쪽에서부터 계산)이 geo2Expr로 설정됩니다. 음수이면 indexExpr이(가) 추가되는 라인 스트링의 위치는 1부터 시작하며, 오른쪽에서부터 측정됩니다.

  • 입력 중 하나라도 NULL인 경우 함수는 NULL을 반환합니다.
  • 출력 줄 문자열의 SRID 값은 입력 GEOGRAPHY 또는 GEOMETRY 값의 일반적인 SRID 값과 같습니다.
  • 출력 GEOGRAPHY 또는 GEOMETRY 라인스트링의 차원은 geo1Expr의 차원과 같습니다. geo2Expr에 존재하지 않는 차원을 가진 좌표가 포함된 경우, 해당 geo1Expr의 좌표는 0으로 설정됩니다.

오류 조건

  • geo1Expr 형식이고 GEOGRAPHY 형식 geo2ExprGEOMETRY이거나 그 반대로 하면 함수는 DATATYPE_MISMATCH 반환합니다.
  • SRID 값이 geo1Expr 다르고 geo2Expr 다른 경우 함수는 ST_DIFFERENT_SRID_VALUES 반환합니다.
  • 함수는 다음 경우에 ST_INVALID_ARGUMENT.INVALID_TYPE을 반환합니다.
    • geo1Expr 이 라인스트링이 아닙니다.
    • geo2Expr 이 포인트가 아닙니다.
  • 함수는 값 이 빈 라이닝일 때, geo1Expr을 반환합니다.
  • 함수는 의 값이 빈 지점일 경우 geo2Expr를 반환합니다.
  • indexExpr의 절대값이 0이거나 라인스트링의 점 수보다 클 경우, 함수는 ST_INVALID_ARGUMENT.INVALID_INDEX_VALUE을 반환합니다.

Examples

-- We set the first point of the linestring counting from the left.
> SELECT st_astext(st_setpoint(st_geomfromtext('LINESTRING(1 2,3 4)'), 1, st_geomfromtext('POINT(7 8)')));
  LINESTRING(7 8,3 4)

-- We set the first point of the linestring counting from the right.
-- The point is missing a Z coordinate. This is set to 0 when we update the linestring.
> SELECT st_asewkt(st_setpoint(st_geogfromtext('LINESTRING ZM (1 2 3 4,5 6 7 8)'), -1, st_geogfromtext('POINT M (0 9 99)')));
  SRID=4326;LINESTRING ZM (1 2 3 4,0 9 0 99)