์นดํ…Œ๊ณ ๋ฆฌ:

๋ฐ˜์ •ํ˜• ๋ฐ ์ •ํ˜• ๋ฐ์ดํ„ฐ ํ•จ์ˆ˜ (๋ฐฐ์—ด/์˜ค๋ธŒ์ ํŠธ)

ARRAY_TO_STRINGยถ

๋ชจ๋“  ๊ฐ’์„ ๋ฌธ์ž์—ด๋กœ ์บ์ŠคํŒ…ํ•˜๊ณ (TO_VARCHAR ์‚ฌ์šฉ) ์—ฐ๊ฒฐํ•˜์—ฌ(์š”์†Œ๋ฅผ ๊ตฌ๋ถ„ํ•˜๊ธฐ ์œ„ํ•ด ๋‘ ๋ฒˆ์งธ ์ธ์ž์˜ ๋ฌธ์ž์—ด ์‚ฌ์šฉ) ๋ฌธ์ž์—ด๋กœ ๋ณ€ํ™˜๋œ ์ž…๋ ฅ ๋ฐฐ์—ด์„ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค.

๊ตฌ๋ฌธยถ

ARRAY_TO_STRING( <array> , <separator_string> )
Copy

์ธ์žยถ

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]');
Copy
+-----------------------------------------------+---------------------------------+-------------------------------------------+
| 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']);
Copy

๋ฐฐ์—ด์„ ์—ฐ๊ฒฐ๋œ ๋ฌธ์ž์—ด๋กœ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค.

SELECT a,
       ARRAY_TO_STRING(a, ''),
       ARRAY_TO_STRING(a, ', ')
  FROM test_array_to_string_with_null;
Copy
+--------------+------------------------+--------------------------+
| A            | ARRAY_TO_STRING(A, '') | ARRAY_TO_STRING(A, ', ') |
|--------------+------------------------+--------------------------|
| [            | AB                     | A, , B                   |
|   "A",       |                        |                          |
|   undefined, |                        |                          |
|   "B"        |                        |                          |
| ]            |                        |                          |
+--------------+------------------------+--------------------------+