Search code examples
sqlpostgresqljsonb

How to make sql table column from jsonb int array


I have a table with jsonb array column like:

 name   |  arr
---------------
 n1     [1,2,3]
 n2     [4,5,6]

I want to get a table from it like:

name   |  element
---------------
  n1        1
  n1        2
  n1        3
  n2        4
  n2        5
  n2        6

Solution

  • Use jsonb_array_elements_text

    select name,j.el::int as element
       from t cross join jsonb_array_elements_text(arr) as j(el)
    

    DEMO