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.
Fügt einen neuen Punkt an der n-ten Position in der Eingabezeilenzeichenfolge GEOGRAPHY oder GEOMETRY hinzu.
Syntax
st_addpoint ( geo1Expr, geo2Expr[, indexExpr] )
Arguments
-
geo1Expr: EinGEOGRAPHY- oderGEOMETRY-Wert, der einen Linienzug darstellt. -
geo2Expr: EinGEOGRAPHYoderGEOMETRYein Wert, der einen Punkt darstellt. -
indexExpr: Ein optionalerINTEGERWert, der eine 1-basierte Position in der Linienzeichenfolge angibt, an der der neue Punkt hinzugefügt werden soll. Der Standardwert ist -1.
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 zurück. EMPTY_LINESTRING , wenn der Wert
geo1Expreine leere Linienzeichenfolge ist. - Die Funktion gibt ST_INVALID_ARGUMENT zurück. EMPTY_POINT , wenn der Wert
geo2Exprein leerer Punkt ist. - Wenn der absolute Wert des Werts von
indexExpr0 oder größer als die Anzahl der Punkte in der Zeilenzeichenfolge plus 1 ist, gibt die Funktion ST_INVALID_ARGUMENT zurück. INVALID_INDEX_VALUE.
Examples
-- We do not specify a position; the point is appended at the end (right) of the linestring.
> SELECT st_asewkt(st_addpoint(st_geomfromtext('LINESTRING(1 2,3 4)', 4326), st_geomfromtext('POINT(7 8)', 4326)));
SRID=4326;LINESTRING(1 2,3 4,7 8)
-- A positive index indicates the position. We add the point at that position in the linestring.
> SELECT st_astext(st_addpoint(st_geomfromtext('LINESTRING(1 2,3 4)'), st_geomfromtext('POINT(7 8)'), 3));
LINESTRING(1 2,3 4,7 8)
-- The position is specified as a negative index. The point is added at that position counting from the right.
-- The point is missing a Z coordinate. This is set to 0 when the point is added in the linestring.
> SELECT st_asewkt(st_addpoint(st_geogfromtext('LINESTRING ZM (1 2 3 4,5 6 7 8)'), st_geogfromtext('POINT M (0 9 99)'), -1));
SRID=4326;LINESTRING ZM (1 2 3 4,5 6 7 8,0 9 0 99)