- 类别:
转换函数、半结构化和结构化数据函数 (数组/对象)
TO_ARRAY¶
将输入表达式转换为 ARRAY 值。
语法¶
TO_ARRAY( <expr> )
实参¶
expr
任何数据类型的表达式。
返回¶
此函数返回 ARRAY 或 NULL 类型值:
如果输入为 ARRAY,或包含一个 ARRAY 值的 VARIANT,则返回值保持不变。
如果
expr
为 NULL 或 JSON 空 值,则该函数返回 NULL。对于任何其他值,返回的值是包含该值的单元素数组。
使用说明¶
要创建包含多个元素的数组,可以使用 ARRAY_CONSTRUCT 或 STRTOK_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;
+----+--------+--------+
| ID | ARRAY1 | ARRAY2 |
|----+--------+--------|
| 1 | [ | [ |
| | 1 | 3 |
| | ] | ] |
+----+--------+--------+
执行一个查询,显示在插入期间创建的单元素数组以及调用 ARRAY_CAT 连接两个数组的结果:
SELECT array1, array2, ARRAY_CAT(array1, array2)
FROM array_demo_2;
+--------+--------+---------------------------+
| ARRAY1 | ARRAY2 | ARRAY_CAT(ARRAY1, ARRAY2) |
|--------+--------+---------------------------|
| [ | [ | [ |
| 1 | 3 | 1, |
| ] | ] | 3 |
| | | ] |
+--------+--------+---------------------------+
此示例演示 TO_ARRAY 如何将字符串输入表达式转换为具有单个元素的数组,即使输入表达式包含分隔符(例如逗号):
SELECT TO_ARRAY('snowman,snowball,snowcone') AS to_array_result;
+-------------------------------+
| TO_ARRAY_RESULT |
|-------------------------------|
| [ |
| "snowman,snowball,snowcone" |
| ] |
+-------------------------------+
要将相同的字符串输入表达式转换为具有多个元素的数组,可以使用 STRTOK_TO_ARRAY 函数:
SELECT STRTOK_TO_ARRAY('snowman,snowball,snowcone', ',') AS strtok_to_array_result;
+------------------------+
| STRTOK_TO_ARRAY_RESULT |
|------------------------|
| [ |
| "snowman", |
| "snowball", |
| "snowcone" |
| ] |
+------------------------+