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.
Retorna o elemento n-ésimo, começando do 1, do valor de entrada GEOMETRY, como um valor de GEOMETRY.
Syntax
st_geometryn ( geoExpr, nExpr )
Arguments
-
geoExpr: UmGEOMETRYvalor. -
nExpr: O índice baseado em 1 do elemento a ser recuperado.
Returns
Um valor do tipo GEOMETRY, que representa o n-ésimo elemento da geometria de entrada.
Se a entrada for um multiponto, uma cadeia de caracteres de várias linhas, um multipolígono ou uma coleção de geometria, a função retornará o n-ésimo elemento ou retornará um erro se o elemento não existir.
Se a entrada for um ponto, cadeia de caracteres de linha ou polígono não vazio e o valor do índice for igual a 1, a função retornará a entrada como um GEOMETRY valor, caso contrário, retornará um erro.
O valor SRID da geometria de saída é o mesmo que o valor de entrada.
Observe que índices menores que 1 não são suportados e resultarão em um erro.
A função retorna NULL se a entrada for NULL.
Condições de erro
- Se o elemento no índice n não existir, a função retornará ST_INVALID_ARGUMENT. INVALID_INDEX_VALUE.
- Se o índice for menor que 1, a função retornará ST_INVALID_ARGUMENT. INVALID_INDEX_VALUE.
- Se a entrada for um ponto, cadeia de linha ou polígono não vazio e o índice não for igual a 1, a função retornará ST_INVALID_ARGUMENT. INVALID_INDEX_VALUE.
Examples
-- Returns the second element of a geometry collection.
> SELECT st_astext(st_geometryn(st_geomfromtext('GEOMETRYCOLLECTION(POINT(4 5),LINESTRING(10 3,24 37,44 85))'), 2));
LINESTRING(10 3,24 37,44 85)
-- Returns the first element of a multipoint.
> SELECT st_astext(st_geometryn(st_geomfromtext('MULTIPOINT((1 2),(3 4),(5 6))'), 1));
POINT(1 2)