- 类别:
:doc:`/sql-reference/functions-semistructured`(数组/对象)
ARRAY_TO_STRING¶
通过将所有值转换为字符串(使用 TO_VARCHAR),然后连接这些字符串(使用第二个实参中的字符串来分隔元素),以返回转换为字符串的输入数组。
语法¶
ARRAY_TO_STRING( <array> , <separator_string> )
实参¶
array
要转换为字符串的元素数组。
separator_string
要放在每个元素之间的字符串,通常是空格、逗号或其他人类可读的分隔符。
返回¶
此函数返回 VARCHAR 类型的值。
使用说明¶
NULL 实参返回 NULL 作为结果。
数组中的 NULL 将转换为结果中的空字符串。
要在值之间包含空格,必须在空格前加上分隔符(例如
', '
)。请参阅以下示例。
示例¶
以连接字符串的形式返回各种数组:
SELECT column1,
ARRAY_TO_STRING(PARSE_JSON(column1), '') AS no_separation,
ARRAY_TO_STRING(PARSE_JSON(column1), ', ') AS comma_separated
FROM VALUES
(NULL),
('[]'),
('[1]'),
('[1, 2]'),
('[true, 1, -1.2e-3, "Abc", ["x","y"], {"a":1}]'),
('[, 1]'),
('[1, ]'),
('[1, , ,2]');
+-----------------------------------------------+---------------------------------+-------------------------------------------+
| COLUMN1 | NO_SEPARATION | COMMA_SEPARATED |
|-----------------------------------------------+---------------------------------+-------------------------------------------|
| NULL | NULL | NULL |
| [] | | |
| [1] | 1 | 1 |
| [1, 2] | 12 | 1, 2 |
| [true, 1, -1.2e-3, "Abc", ["x","y"], {"a":1}] | true1-0.0012Abc["x","y"]{"a":1} | true, 1, -0.0012, Abc, ["x","y"], {"a":1} |
| [, 1] | 1 | , 1 |
| [1, ] | 1 | 1, |
| [1, , ,2] | 12 | 1, , , 2 |
+-----------------------------------------------+---------------------------------+-------------------------------------------+
此示例将返回一个数组,其中包连接字符串形式的 NULL 值。首先,创建一个表并插入一个数组:
CREATE TABLE test_array_to_string_with_null(a ARRAY);
INSERT INTO test_array_to_string_with_null
SELECT (['A', NULL, 'B']);
以连接字符串的形式返回数组:
SELECT a,
ARRAY_TO_STRING(a, ''),
ARRAY_TO_STRING(a, ', ')
FROM test_array_to_string_with_null;
+--------------+------------------------+--------------------------+
| A | ARRAY_TO_STRING(A, '') | ARRAY_TO_STRING(A, ', ') |
|--------------+------------------------+--------------------------|
| [ | AB | A, , B |
| "A", | | |
| undefined, | | |
| "B" | | |
| ] | | |
+--------------+------------------------+--------------------------+