Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Aplica-se a:
Databricks SQL
Databricks Runtime 17.1 e superior
Observação
Esse recurso não está disponível nos armazéns Databricks SQL Classic. Para saber mais sobre os armazéns SQL do Databricks, consulte Tipos de armazém SQL.
Define o n-ésimo ponto da cadeia de caracteres GEOGRAPHYGEOMETRY ou valor da linha de entrada.
Syntax
st_setpoint ( geo1Expr, indexExpr, geo2Expr )
Arguments
-
geo1Expr: UmGEOGRAPHYouGEOMETRYvalor que representa uma cadeia de caracteres de linha. -
indexExpr: UmINTEGERvalor que indica a posição baseada em 1 na cadeia de caracteres de linha onde o novo ponto deve ser definido. -
geo2Expr: UmGEOGRAPHYouGEOMETRYvalor que representa um ponto.
Returns
Um valor de tipo GEOGRAPHY se ambos geo1Expr e geo2Expr são do tipo GEOGRAPHY, ou um valor de tipo GEOMETRY se ambos geo1Expr e geo2Expr são do tipo GEOMETRY.
Se indexExpr for positivo, o valor retornado GEOGRAPHY ou GEOMETRY é uma nova cadeia de caracteres de linha cujo indexExpr-ésimo ponto (contado a partir da esquerda) está definido como geo2Expr.
Se indexExpr for negativo, a posição baseada em 1 da linestring onde o ponto é adicionado é calculada a partir da direita.
- A função retorna
NULLse qualquer uma das entradas forNULL. - O valor SRID da linhastring de saída é igual ao valor SRID comum dos valores de entrada
GEOGRAPHYouGEOMETRY. - A dimensão da saída
GEOGRAPHYouGEOMETRYcadeia de caracteres de linha é a mesma que a degeo1Expr. Segeo2Exprcontiver coordenadas cuja dimensão não existe nasgeo1Exprcoordenadas correspondentes são definidas como 0.
Condições de erro
- Se
geo1Exprfor do tipoGEOGRAPHYegeo2Exprfor do tipoGEOMETRY, ou o contrário, a função retornará DATATYPE_MISMATCH. - Se os valores SRID de
geo1Expregeo2Exprdiferirem, a função retornará ST_DIFFERENT_SRID_VALUES. - A função retorna ST_INVALID_ARGUMENT. INVALID_TYPE em qualquer um dos seguintes casos:
- O valor de
geo1Exprnão é um linestring. - O valor de
geo2Exprnão é um ponto.
- O valor de
- A função retorna ST_INVALID_ARGUMENT.EMPTY_LINESTRING se o valor de
geo1Exprfor uma linha vazia. - A função retorna ST_INVALID_ARGUMENT. EMPTY_POINT se o valor de
geo2Expré um ponto vazio. - Se o valor absoluto de
indexExprfor 0 ou maior que o número de pontos na linha de sequência, a função devolve 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)