Funktionen split

Gäller för:markerad ja Databricks SQL markerad ja Databricks Runtime

Delar upp förekomster str som matchar regex och returnerar en matris med en längd på högst limit.

Syntax

split(str, regex [, limit] )

Argument

  • str: Ett STRING uttryck som ska delas.
  • regexp: Ett STRING uttryck som är ett reguljärt uttryck som delar str. Se Reguljära uttryck för syntaxen som stöds.
  • limit: Ett valfritt INTEGER-uttryck som standardinställs till 0 (ingen gräns).

Returer

En ARRAY<STRING>.

Om limit> 0: Den resulterande matrisens längd är inte mer än limit, och den resulterande matrisens sista post innehåller alla indata utöver den senast matchade regex.

Om limit<= 0: regex tillämpas så många gånger som möjligt och den resulterande matrisen kan vara av valfri storlek.

Exempel

Dela upp på en uppsättning avgränsartecken

Teckenklassen [ABC] matchar någon av A, Beller C som en avgränsare. Det avslutande tomma elementet kommer från avgränsaren i slutet av strängen.

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

Dela upp en kommaavgränsad sträng

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

Dela på ett eller flera blankstegstecken

Använd \s+ så att en körning av blanksteg eller flikar fungerar som en enda avgränsare.

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

Begränsa antalet element

När limit är större än 0 innehåller det sista elementet resten av strängen.

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

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

Sortering påverkar matchning

Det gemener mönstret [abc] matchar endast versaler avgränsare under en skiftlägesokänslig sortering.

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

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