tencent cloud

Cloud Log Service

UNNEST Syntax

Download
Focus Mode
Font Size
Last updated: 2026-05-14 21:10:44
UNNEST can expand an ARRAY or MAP into multiple rows of data.

Syntax Format

Expand an ARRAY into multiple rows of single-column data:
* | SELECT * FROM UNNEST(ARRAY['value1','value2',...]) AS table_name(key_name)
Expand a MAP into multiple rows of data:
* | SELECT * FROM UNNEST(map) AS table_name(key1_name, key2_name,...)

Syntax Example

Expand an ARRAY into multiple rows of data:
* | SELECT * FROM UNNEST(ARRAY[1,2]) AS t(number)
Return result:
number
1
2
Expand a MAP into multiple rows of data:
* | SELECT * FROM UNNEST(
map_from_entries(
ARRAY[
('SQL',1974),
('Java', 1995)
]
)
) AS t(language, first_appeared_year)
Return result:
language
first_appeared_year
SQL
1974
Java
1995
Split the response time field connected by commas in the log into multiple rows of data:
Original logs:
## First original log
rsp_time: 0.004, 0.002
url: /demo/test1

## Second original log
rsp_time: 0.006, 0.008
url: /demo/test2
Search and analysis statement:
* | SELECT time,url
FROM (
SELECT split(rsp_time,',') AS time_array,url
) t
CROSS JOIN UNNEST(time_array) AS t(time)
Return result:
time
url
0.004
/demo/test1
0.002
/demo/test1
0.006
/demo/test2
0.008
/demo/test2
Split the response time and response status fields connected by commas in the log into multiple rows of data:
Original logs:
## First original log
rsp_time: 0.004, 0.002
rsp_status: 200, 502
url: /demo/test1

## Second original log
rsp_time: 0.006, 0.008
rsp_status: 500, 404
url: /demo/test2
Search and analysis statement:
* | SELECT time,status,url
FROM (
SELECT zip(split(rsp_time,','),split(rsp_status,',')) as data_array,url
) t
CROSS JOIN UNNEST(data_array) AS t(time,status)
Return result:
time
status
url
0.004
200
/demo/test1
0.002
502
/demo/test1
0.006
500
/demo/test2
0.008
404
/demo/test2


Help and Support

Was this page helpful?

Help us improve! Rate your documentation experience in 5 mins.

Feedback