A split függvény

A következőkre vonatkozik:jelölje be az igennel jelölt jelölőnégyzetet Databricks SQL jelölje be az igennel jelölt jelölőnégyzetet Databricks Runtime

str köré osztja az egyező előfordulásokat a regex-vel, és egy legfeljebb limit hosszúságú tömböt ad vissza.

Szintaxis

split(str, regex [, limit] )

Argumentumok

  • str: Egy STRING kifejezés, amelyet fel kell osztani.
  • regexp: Olyan STRING kifejezés, amely egy normál, felosztott strkifejezés. A támogatott szintaxishoz lásd a Reguláris kifejezéseket .
  • limit: Nem kötelező INTEGER kifejezés, amely alapértelmezés szerint 0 (nincs korlát).

Visszatérések

Egy ARRAY<STRING>.

Ha limit> 0: Az eredményként kapott tömb hossza nem lesz több, mint limit, és az eredményként kapott tömb utolsó bejegyzése tartalmazni fog minden bemenetet az utolsó mintával egyező pont után.

Ha limit<= 0: regex a lehető legtöbb alkalommal lesz alkalmazva, és az eredményként kapott tömb bármilyen méretű lehet.

Példák

Elválasztó karakterek halmazának felosztása

A karakterosztály [ABC] egyezik bármelyik A, Bvagy C elválasztó karakterrel. A záró üres elem a sztring végén lévő elválasztóból származik.

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

Vesszővel elválasztott sztring felosztása

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

Felosztás egy vagy több szóköz karakterre

Használjon \s+ úgy, hogy a szóközök vagy lapok futtatása egyetlen elválasztóként működjon.

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

Az elemek számának korlátozása

Ha limit 0-nál nagyobb, az utolsó elem a sztring fennmaradó részét tartalmazza.

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

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

A rendezés hatással van az egyeztetésre

A kisbetűs minta [abc] csak kis- és nagybetűk megkülönböztetése esetén egyezik meg a nagybetűkkel.

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

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