- カテゴリ:
半構造化データ関数と構造化データ関数 (配列/オブジェクト)
ARRAY_TO_STRING¶
すべての値を文字列にキャストし( TO_VARCHAR を使用)、それらを連結(2番目の引数の文字列を使用して要素を分離)することにより、文字列に変換された入力配列を返します。
構文¶
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" | | |
| ] | | |
+--------------+------------------------+--------------------------+