Sdílet prostřednictvím


st_setpoint Funkce

Platí pro:check označený jako ano Kontrola SQL Databricks označená jako ano Databricks Runtime 17.1 a vyšší

Important

Tato funkce je ve verzi Public Preview.

Poznámka:

Tato funkce není k dispozici ve skladech Databricks SQL Classic. Další informace o službě Databricks SQL Warehouse najdete v tématu Typy SQL Warehouse.

Nastaví n-tý bod vstupního řetězce GEOGRAPHY nebo GEOMETRY hodnoty.

Syntax

st_setpoint ( geo1Expr, indexExpr, geo2Expr )

Arguments

  • geo1Expr: Hodnota typu GEOGRAPHY nebo GEOMETRY představující liniový řetězec.
  • indexExpr INTEGER: Hodnota označující pozici založenou na číslování od 1 v řetězci linií, kde má být nový bod umístěn.
  • geo2Expr: Hodnota GEOGRAPHY nebo GEOMETRY představující bod.

Returns

Hodnota typu GEOGRAPHY , pokud jsou oba geo1Expr a geo2Expr jsou typu GEOGRAPHY, nebo hodnota typu GEOMETRY , pokud oba geo1Expr a geo2Expr jsou typu GEOMETRY. Pokud indexExpr je kladný, vrácená GEOGRAPHY nebo GEOMETRY hodnota je nový linestring, jehož indexExpr-tý bod (počítáno od začátku) je nastaven na geo2Expr. Pokud je indexExpr záporné, pozice 1 založená na umístění liniového objektu, kde se bod přidá, se měří zprava.

  • Funkce vrátí NULL , pokud je některý ze vstupů NULL.
  • Hodnota SRID výstupního řetězce řádku se rovná společné hodnotě SRID vstupu GEOGRAPHY nebo GEOMETRY hodnot.
  • Dimenze výstupního GEOGRAPHY nebo GEOMETRY spojnicového řetězce je stejná jako hodnota geo1Expr. Pokud geo2Expr obsahuje souřadnice, jejichž rozměr neexistuje v geo1Expr odpovídajících souřadnicích, jsou nastaveny na hodnotu 0.

Chybové podmínky

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)