explode_split

description

表函数,需配合 Lateral View 使用。

将一个字符串按指定的分隔符分割成多个子串。

syntax

explode_split(str, delimiter)

example

原表数据:

  1. mysql> select * from example1 order by k1;
  2. +------+---------+
  3. | k1 | k2 |
  4. +------+---------+
  5. | 1 | |
  6. | 2 | NULL |
  7. | 3 | , |
  8. | 4 | 1 |
  9. | 5 | 1,2,3 |
  10. | 6 | a, b, c |
  11. +------+---------+

Lateral View:

  1. mysql> select k1, e1 from example1 lateral view explode_split(k2, ',') tmp1 as e1 where k1 = 1 order by k1, e1;
  2. +------+------+
  3. | k1 | e1 |
  4. +------+------+
  5. | 1 | |
  6. +------+------+
  7. mysql> select k1, e1 from example1 lateral view explode_split(k2, ',') tmp1 as e1 where k1 = 2 order by k1, e1;
  8. Empty set
  9. mysql> select k1, e1 from example1 lateral view explode_split(k2, ',') tmp1 as e1 where k1 = 3 order by k1, e1;
  10. +------+------+
  11. | k1 | e1 |
  12. +------+------+
  13. | 3 | |
  14. +------+------+
  15. mysql> select k1, e1 from example1 lateral view explode_split(k2, ',') tmp1 as e1 where k1 = 4 order by k1, e1;
  16. +------+------+
  17. | k1 | e1 |
  18. +------+------+
  19. | 4 | 1 |
  20. +------+------+
  21. mysql> select k1, e1 from example1 lateral view explode_split(k2, ',') tmp1 as e1 where k1 = 5 order by k1, e1;
  22. +------+------+
  23. | k1 | e1 |
  24. +------+------+
  25. | 5 | 2 |
  26. | 5 | 3 |
  27. | 5 | 1 |
  28. +------+------+
  29. mysql> select k1, e1 from example1 lateral view explode_split(k2, ',') tmp1 as e1 where k1 = 6 order by k1, e1;
  30. +------+------+
  31. | k1 | e1 |
  32. +------+------+
  33. | 6 | b |
  34. | 6 | c |
  35. | 6 | a |
  36. +------+------+

keywords

explode,split,explode_split