Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Gilt für:
Databricks SQL
Databricks Runtime 17.1 and above
Important
Dieses Feature befindet sich in der Public Preview.
Hinweis
Dieses Feature ist in Databricks SQL Classic Warehouses nicht verfügbar. Weitere Informationen zu Databricks SQL Warehouses finden Sie unter SQL Warehouse-Typen.
Legt den n-ten Punkt des Eingabe-Liniensegments GEOGRAPHY oder GEOMETRY-Wert fest.
Syntax
st_setpoint ( geo1Expr, indexExpr, geo2Expr )
Arguments
-
geo1Expr: EinGEOGRAPHY- oderGEOMETRY-Wert, der einen Linienzug darstellt. -
indexExpr: EinINTEGERWert, der die 1-basierte Position in der Linienzeichenfolge angibt, an der der neue Punkt festgelegt werden soll. -
geo2Expr: EinGEOGRAPHYoderGEOMETRYein Wert, der einen Punkt darstellt.
Returns
Ein Wert vom Typ GEOGRAPHY , wenn beide geo1Expr und geo2Expr vom Typ GEOGRAPHYsind, oder ein Wert des Typs GEOMETRY , wenn beide geo1Expr und geo2Expr vom Typ GEOMETRYsind.
Wenn indexExpr positiv ist, handelt es sich bei dem zurückgegebenen GEOGRAPHY oder GEOMETRY-Wert um einen neuen Linienzug, dessen indexExpr-ter Punkt (von links gezählt) auf geo2Expr gesetzt ist.
Wenn indexExpr negativ ist, wird die Position des Linienstrings basierend auf 1, an der der Punkt hinzugefügt wird, von rechts gemessen.
- Die Funktion gibt zurück
NULL, wenn eine der Eingaben lautetNULL. - Der SRID-Wert des Ausgabe-Linestrings entspricht dem gemeinsamen SRID-Wert der Eingabewerte
GEOGRAPHYoderGEOMETRY. - Die Dimension der Ausgabe
GEOGRAPHY- oderGEOMETRYLinienzeichenfolge ist identisch mit der der vongeo1Expr. Ifgeo2Exprenthält Koordinaten, deren Dimension in der Datenbank nicht vorhanden ist.geo1Exprwerden die entsprechenden Koordinaten auf 0 aktiviert.
Fehlerbedingungen
- Wenn
geo1Exprder TypGEOGRAPHYist undgeo2Exprvom TypGEOMETRYist oder umgekehrt, gibt die Funktion DATATYPE_MISMATCH zurück. - Wenn die SRID-Werte von
geo1Exprundgeo2Exprunterschiedlich sind, gibt die Funktion ST_DIFFERENT_SRID_VALUES zurück. - Die Funktion gibt ST_INVALID_ARGUMENT.INVALID_TYPE in einem der folgenden Fälle zurück:
- Der Wert von
geo1Exprist keine Linienzeichenfolge. - Der Wert von
geo2Exprist kein Punkt.
- Der Wert von
- Die Funktion gibt ST_INVALID_ARGUMENT_EMPTY_LINESTRING zurück, wenn der Wert
geo1Exprein leerer LineString ist. - Die Funktion gibt ST_INVALID_ARGUMENT zurück. EMPTY_POINT , wenn der Wert
geo2Exprein leerer Punkt ist. - Wenn der absolute Wert des Werts
indexExpr0 oder größer als die Anzahl der Punkte in der Linienzeichenfolge ist, gibt die Funktion ST_INVALID_ARGUMENT zurück. 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)