次の方法で共有


st_setpoint 関数

適用対象:はい Databricks SQL チェックが Databricks Runtime 17.1 以降" とマークされているチェック

Important

この機能は パブリック プレビュー段階です

この機能は、Databricks SQL クラシック ウェアハウスでは使用できません。 Databricks SQL ウェアハウスの詳細については、 SQL ウェアハウスの種類に関するページを参照してください。

入力ライン文字列の n 番目のポイントを GEOGRAPHY または GEOMETRY 値に設定します。

Syntax

st_setpoint ( geo1Expr, indexExpr, geo2Expr )

Arguments

  • geo1Expr: ラインストリングを表す GEOGRAPHY または GEOMETRY 値。
  • indexExpr: 新しいポイントを設定する必要があるラインストリング内の 1 から始まる位置を示す INTEGER 値。
  • geo2Expr: ポイントを表す GEOGRAPHY 値または GEOMETRY 値。

Returns

GEOGRAPHYgeo1Exprの両方が型geo2Exprの場合はGEOGRAPHY型の値。GEOMETRYgeo1Exprの両方がgeo2Expr型の場合はGEOMETRY型の値。 indexExprが正の場合、返されるGEOGRAPHYまたはGEOMETRY値は、indexExpr番目のポイント (左からカウント) がgeo2Exprに設定された新しいライン文字列です。 indexExprが負の値の場合、ポイントが追加されるラインストリングの 1 から始まる位置が右から測定されます。

  • いずれかの入力がNULLされている場合、関数はNULLを返します。
  • 出力ラインストリングの SRID 値は、入力 GEOGRAPHY または GEOMETRY 値の共通 SRID 値と等しくなります。
  • 出力 GEOGRAPHY または GEOMETRY ライン文字列の次元は、 geo1Exprと同じです。 ディメンションgeo2Expr存在しない座標がgeo1Exprに含まれている場合、対応する座標は 0 に設定されます。

エラー条件

  • geo1ExprGEOGRAPHY型で、geo2ExprGEOMETRY型の場合、またはその逆の場合、関数はDATATYPE_MISMATCHを返します。
  • geo1Exprgeo2Exprの SRID 値が異なる場合、関数はST_DIFFERENT_SRID_VALUESを返します。
  • この関数は次のいずれかの場合にST_INVALID_ARGUMENT.INVALID_TYPEを返します。
    • geo1Exprの値は行文字列ではありません。
    • geo2Exprの値はポイントではありません。
  • 関数はST_INVALID_ARGUMENT.EMPTY_LINESTRINGを返しますgeo1Exprの値が空のラインストリングである場合。
  • この関数は、の値が空のポイントの場合、geo2Exprを返します。
  • indexExprの値の絶対値が 0 またはラインストリング内のポイント数を超える場合、この関数は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)