Función split

Se aplica a:casilla marcada como Sí Databricks SQL casilla marcada como Sí Databricks Runtime

Divide str en torno a las repeticiones que coinciden con regex y devuelve una matriz con una longitud máxima de limit.

Sintaxis

split(str, regex [, limit] )

Argumentos

  • str: expresión STRING que se va a dividir.
  • regexp STRING: expresión que es una expresión regular que divide str. Consulte Expresiones regulares para obtener la sintaxis admitida.
  • limit: expresión opcional INTEGER que tiene como valor predeterminado 0 (sin límite).

Devoluciones

Un valor de tipo ARRAY<STRING>.

Si limit> es 0: la longitud de la matriz resultante no será mayor que limity la última entrada de la matriz resultante contendrá toda la entrada más allá de la última coincidencia regex.

Si limit< = 0: regex se aplicará tantas veces como sea posible, y la matriz resultante podrá ser de cualquier tamaño.

Ejemplos

Dividir en un conjunto de caracteres delimitadores

La clase [ABC] de caracteres coincide con cualquiera de A, Bo C como delimitador. El elemento vacío final procede del delimitador al final de la cadena.

> SELECT split('oneAtwoBthreeC', '[ABC]');
 [one,two,three,]

Dividir una cadena separada por comas

> SELECT split('apple,banana,cherry', ',');
 [apple,banana,cherry]

Dividir en uno o varios caracteres de espacio en blanco

Use \s+ para que una ejecución de espacios o pestañas actúe como un único delimitador.

> SELECT split('the   quick  brown', r'\s+');
 [the,quick,brown]

Limitar el número de elementos

Cuando limit es mayor que 0, el elemento final contiene el resto de la cadena.

> SELECT split('oneAtwoBthreeC', '[ABC]', 2);
 [one,twoBthreeC]

> SELECT split('oneAtwoBthreeC', '[ABC]', -1);
 [one,two,three,]

La intercalación afecta a la coincidencia

El patrón [abc] en minúsculas coincide con los delimitadores en mayúsculas solo en una intercalación que no distingue mayúsculas de minúsculas.

> SELECT split('oneAtwoBthreeC' COLLATE UTF8_BINARY, '[abc]');
 [oneAtwoBthreeC]

> SELECT split('oneAtwoBthreeC' COLLATE UTF8_LCASE, '[abc]');
 [one,two,three,]