explode

description

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

将 array 列展开成多行。当 array 为NULL或者为空时,explode_outer 返回NULL。 explodeexplode_outer 均会返回 array 内部的NULL元素。

语法:

  1. explode(expr)
  2. explode_outer(expr)

example

  1. mysql> set enable_vectorized_engine = true
  2. mysql> select e1 from (select 1 k1) as t lateral view explode([1,2,3]) tmp1 as e1;
  3. +------+
  4. | e1 |
  5. +------+
  6. | 1 |
  7. | 2 |
  8. | 3 |
  9. +------+
  10. mysql> select e1 from (select 1 k1) as t lateral view explode_outer(null) tmp1 as e1;
  11. +------+
  12. | e1 |
  13. +------+
  14. | NULL |
  15. +------+
  16. mysql> select e1 from (select 1 k1) as t lateral view explode([]) tmp1 as e1;
  17. Empty set (0.010 sec)
  18. mysql> select e1 from (select 1 k1) as t lateral view explode([null,1,null]) tmp1 as e1;
  19. +------+
  20. | e1 |
  21. +------+
  22. | NULL |
  23. | 1 |
  24. | NULL |
  25. +------+
  26. mysql> select e1 from (select 1 k1) as t lateral view explode_outer([null,1,null]) tmp1 as e1;
  27. +------+
  28. | e1 |
  29. +------+
  30. | NULL |
  31. | 1 |
  32. | NULL |
  33. +------+

keywords

EXPLODE,EXPLODE_OUTER,ARRAY