如何在SQL中合并/合并/添加两个数组以形成一个新数组?

时间:2019-06-18 19:28:52

标签: sql arrays snowflake

我有一个表,该表包含两列,这些列以数组格式存储数据。例如,'duration'包含[1,2,3,4]之类的值,column_1包含[5,6,7]之类的值。我想将两者结合起来以创建一个column_2,其值在此处为数组[1,2,3,4,5,6,7]。这些数字将是唯一的,并且数组的长度可以不同。

1 个答案:

答案 0 :(得分:1)

对您有用吗?

select array_cat(array_construct(NULL, 2), array_construct(3, 4));
+------------------------------------------------------------+
| ARRAY_CAT(ARRAY_CONSTRUCT(NULL, 2), ARRAY_CONSTRUCT(3, 4)) |
|------------------------------------------------------------|
| [                                                          |
|   undefined,                                               |
|   2,                                                       |
|   3,                                                       |
|   4                                                        |
| ]                                                          |
+------------------------------------------------------------+

但是,如果您看到这样的错误:

select array_cat(NULL, array_construct(3, 4));
100072 (22000): NULL result in a non-nullable column

您只需添加:

select array_cat(IFNULL(NULL, array_construct()), array_construct(3, 4));
+-------------------------------------------------------------------+
| ARRAY_CAT(IFNULL(NULL, ARRAY_CONSTRUCT()), ARRAY_CONSTRUCT(3, 4)) |
|-------------------------------------------------------------------|
| [                                                                 |
|   3,                                                              |
|   4                                                               |
| ]                                                                 |
+-------------------------------------------------------------------+
1 Row(s) produced. Time Elapsed: 1.241s

注意:将ARRAY_CONSTRUCT()替换为您的列名。