Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Funkcja
Dotyczy:
, sprawdź, czy usługa SQL databricks
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śćGEOGRAPHYlubGEOMETRYreprezentująca ciąg liniowy. -
indexExpr: wartość wskazującaINTEGERpozycję opartą na 1 w linii, w której należy ustawić nowy punkt. -
geo2Expr: wartośćGEOGRAPHYlubGEOMETRYreprezentują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 jestNULL. - Wartość SRID ciągu linestring wyjściowego jest równa wspólnej wartości SRID wartości danych wejściowych
GEOGRAPHYlubGEOMETRY. - Wymiar danych wyjściowych
GEOGRAPHYlubGEOMETRYlinestring jest taki sam jak wymiargeo1Expr. Jeśligeo2Exprzawiera współrzędne, których wymiar nie istnieje wgeo1Expr, odpowiednie współrzędne są ustawiane na 0.
Warunki błędu
- Jeśli
geo1Exprjest typuGEOGRAPHY, ageo2Exprjest typuGEOMETRY, lub odwrotnie, funkcja zwraca DATATYPE_MISMATCH. - Jeśli wartości
geo1ExprSRID igeo2Exprróżnią się, funkcja zwraca ST_DIFFERENT_SRID_VALUES. - Funkcja zwraca ST_INVALID_ARGUMENT. INVALID_TYPE w dowolnym z następujących przypadków:
- Wartość elementu
geo1Exprnie jest ciągiem liniowym. - Wartość
geo2Exprnie jest punktem.
- Wartość elementu
- Funkcja zwraca ST_INVALID_ARGUMENT. EMPTY_LINESTRING , jeśli wartość parametru
geo1Exprjest pustym ciągiem wiersza. - Funkcja zwraca ST_INVALID_ARGUMENT. EMPTY_POINT , jeśli wartość
geo2Exprjest pustym punktem. - Jeśli wartość bezwzględna wartości
indexExprto 0 lub większa niż liczba punktów w linii, funkcja zwraca 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)