类别:

转换函数半结构化和结构化数据函数 (数组/对象)

TO_ARRAY

将输入表达式转换为 ARRAY 值。

语法

TO_ARRAY( <expr> )
Copy

实参

expr

任何数据类型的表达式。

返回

此函数返回 ARRAY 或 NULL 类型值:

  • 如果输入为 ARRAY,或包含一个 ARRAY 值的 VARIANT,则返回值保持不变。

  • 如果 expr 为 NULL 或 JSON 空 值,则该函数返回 NULL。

  • 对于任何其他值,返回的值是包含该值的单元素数组。

使用说明

要创建包含多个元素的数组,可以使用 ARRAY_CONSTRUCTSTRTOK_TO_ARRAY

示例

创建一个表,并通过调用 TO_ARRAY 函数插入数据:

CREATE OR REPLACE TABLE array_demo_2 (
  ID INTEGER,
  array1 ARRAY,
  array2 ARRAY);

INSERT INTO array_demo_2 (ID, array1, array2)
  SELECT 1, TO_ARRAY(1), TO_ARRAY(3);

SELECT * FROM array_demo_2;
Copy
+----+--------+--------+
| ID | ARRAY1 | ARRAY2 |
|----+--------+--------|
|  1 | [      | [      |
|    |   1    |   3    |
|    | ]      | ]      |
+----+--------+--------+

执行一个查询,显示在插入期间创建的单元素数组以及调用 ARRAY_CAT 连接两个数组的结果:

SELECT array1, array2, ARRAY_CAT(array1, array2)
  FROM array_demo_2;
Copy
+--------+--------+---------------------------+
| ARRAY1 | ARRAY2 | ARRAY_CAT(ARRAY1, ARRAY2) |
|--------+--------+---------------------------|
| [      | [      | [                         |
|   1    |   3    |   1,                      |
| ]      | ]      |   3                       |
|        |        | ]                         |
+--------+--------+---------------------------+

此示例演示 TO_ARRAY 如何将字符串输入表达式转换为具有单个元素的数组,即使输入表达式包含分隔符(例如逗号):

SELECT TO_ARRAY('snowman,snowball,snowcone') AS to_array_result;
Copy
+-------------------------------+
| TO_ARRAY_RESULT               |
|-------------------------------|
| [                             |
|   "snowman,snowball,snowcone" |
| ]                             |
+-------------------------------+

要将相同的字符串输入表达式转换为具有多个元素的数组,可以使用 STRTOK_TO_ARRAY 函数:

SELECT STRTOK_TO_ARRAY('snowman,snowball,snowcone', ',') AS strtok_to_array_result;
Copy
+------------------------+
| STRTOK_TO_ARRAY_RESULT |
|------------------------|
| [                      |
|   "snowman",           |
|   "snowball",          |
|   "snowcone"           |
| ]                      |
+------------------------+
语言: 中文