Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to flatten Array string column to row in snowflake?

I've tried using snowflake's flatten, but it doesn't work, so I'm asking.

Example data

  • array string type -> varchar
id array string
1 [10001,100000][10003,100000000][10004,10000][10006,100]

I want

id array string
1 [10001,100000]
1 [10003,100000000]
1 .....
like image 651
Suyoung Jang Avatar asked Apr 21 '26 05:04

Suyoung Jang


1 Answers

SELECT 
    id, 
    '[' || c.value::string AS "array string"
FROM data d,
     LATERAL FLATTEN(input=>split(d."array string", '[')) c;

should work, as you are splitting on the open array token, and thus need to put it back in the output.

like image 161
Simeon Pilgrim Avatar answered Apr 25 '26 05:04

Simeon Pilgrim