Udostępnij przez


Funkcja st_setpoint

Dotyczy:sprawdź, czy zaznaczono tak, sprawdź, czy usługa SQL databricks została oznaczona jako tak Databricks Runtime 17.1 lub nowsza

Important

Ta funkcja jest dostępna w publicznej wersji testowej.

Uwaga / Notatka

Ta funkcja nie jest dostępna w usłudze Databricks SQL Classic Warehouses. Aby dowiedzieć się więcej na temat magazynów SQL usługi Databricks, zobacz Typy usługi SQL Warehouse.

Ustawia n-ty punkt linii GEOGRAPHY wejściowej lub GEOMETRY wartości.

Syntax

st_setpoint ( geo1Expr, indexExpr, geo2Expr )

Arguments

  • geo1Expr: wartość GEOGRAPHY lub GEOMETRY reprezentująca ciąg liniowy.
  • indexExpr: wartość wskazująca INTEGER pozycję opartą na 1 w linii, w której należy ustawić nowy punkt.
  • geo2Expr: wartość GEOGRAPHY lub GEOMETRY reprezentująca punkt.

Returns

Wartość typu GEOGRAPHY, jeśli zarówno geo1Expr jak i geo2Expr są typu GEOGRAPHY, lub wartość typu GEOMETRY, jeśli zarówno geo1Expr jak i geo2Expr są typu GEOMETRY. Jeśli indexExpr jest dodatni, zwracana wartość GEOGRAPHY lub GEOMETRY jest nowym ciągiem liniowym, którego indexExpr-ty punkt (licząc od lewej) ma wartość geo2Expr. Jeśli indexExpr jest ujemne, pozycja oparta na indeksie 1 ciągu liniowego, w którym punkt jest dodawany, jest mierzona od prawej strony.

  • Funkcja zwraca NULL, jeśli którekolwiek z danych wejściowych jest NULL.
  • Wartość SRID ciągu linestring wyjściowego jest równa wspólnej wartości SRID wartości danych wejściowych GEOGRAPHY lub GEOMETRY.
  • Wymiar danych wyjściowych GEOGRAPHY lub GEOMETRY linestring jest taki sam jak wymiar geo1Expr. Jeśli geo2Expr zawiera współrzędne, których wymiar nie istnieje w geo1Expr, odpowiednie współrzędne są ustawiane na 0.

Warunki błędu

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)