ARRAY_TO_STRING

ARRAY_TO_STRING

입력 배열의 모든 값을 TO_VARCHAR로 문자열로 캐스팅하고, 두 번째 인자의 문자열로 요소를 구분해 이어붙인 문자열을 돌려주는 함수예요.

출처: 공식 문서

본문

모든 값을 문자열로 캐스팅하고(TO_VARCHAR 사용) 두 번째 인자의 문자열을 사용해 요소를 구분하며 이어붙여(concatenate) 문자열로 변환된 입력 배열을 반환합니다.

구문 (Syntax)

ARRAY_TO_STRING( <array> , <separator_string> )

인자 (Arguments)

array

문자열로 변환할 요소들의 배열입니다.

separator_string

각 요소 사이에 넣을 문자열로, 보통 공백, 쉼표 또는 다른 사람이 읽을 수 있는 구분자입니다.

반환값 (Returns)

이 함수는 VARCHAR 타입의 값을 반환합니다.

사용 참고 (Usage notes)

  • NULL 인자는 결과로 NULL을 반환합니다.
  • 배열 안의 NULL은 결과에서 빈 문자열로 변환됩니다.
  • 값 사이에 공백을 포함하려면 구분자 문자 뒤에 공백을 붙여야 합니다(예: ', '). 아래 예제를 참고하세요.

예제 (Examples)

다양한 배열을 이어붙인 문자열로 반환합니다:

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"        |                        |                          |
| ]            |                        |                          |
+--------------+------------------------+--------------------------+

더 알아보기 (Learn more)