split-Funktion

Gilt für:durch Häkchen mit „Ja“ markiert Databricks SQL durch Häkchen mit „Ja“ markiert Databricks Runtime

Teilt str bei Vorkommen, die mit regex übereinstimmen und gibt ein Array mit einer Länge von höchstens limit zurück.

Syntax

split(str, regex [, limit] )

Argumente

  • str: Ein STRING Ausdruck, der geteilt werden soll.
  • regexp: Ein STRING Ausdruck, der einen regulären Ausdruck darstellt, der geteilt wird str. Siehe reguläre Ausdrücke für die unterstützte Syntax.
  • limit: Ein optionaler INTEGER Ausdruck, der standardmäßig auf 0 festgelegt ist (kein Grenzwert).

Gibt zurück

Ein ARRAY<STRING>-Element.

Wenn limit> 0: Die länge des resultierenden Arrays ist nicht mehr als limit, und der letzte Eintrag des resultierenden Arrays enthält alle Eingaben, die über die letzte Übereinstimmung regexhinausgehen.

Wenn limit<= 0: regex wird so häufig wie möglich angewendet, und das sich ergebenden Array kann eine beliebige Größe aufweisen.

Beispiele

Teilen auf einer Gruppe von Trennzeichen

Die Zeichenklasse [ABC] entspricht einem von A, Boder C als Trennzeichen. Das nachfolgende leere Element stammt aus dem Trennzeichen am Ende der Zeichenfolge.

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

Teilen einer durch Trennzeichen getrennten Zeichenfolge

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

Teilen auf ein oder mehrere Leerzeichen

Verwenden Sie diese Eigenschaft \s+ , sodass eine Reihe von Leerzeichen oder Tabstopps als einzelnes Trennzeichen fungiert.

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

Begrenzen der Anzahl von Elementen

Wenn limit größer als 0 ist, enthält das letzte Element den Rest der Zeichenfolge.

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

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

Sortierung wirkt sich auf den Abgleich aus

Das Kleinbuchstabenmuster [abc] entspricht den Trennzeichen in Großbuchstaben nur unter einer Sortierung ohne Groß-/Kleinschreibung.

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

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