首页 > 解决方案 > 将包含数组的列转换为新行

问题描述

我确实有一张包含下一个数据的表格

val
---
["a", "b", "c"]
["d", "e", "f"]

有没有办法选择并将其输出为

val
----
a
b
c
d
e
f

谢谢!

标签: postgresql

解决方案


这看起来像一个 JSON 数组,因此您可以使用:

select e.val
from the_table
   cross join jsonb_array_elements(t.val) as e(val)

这假设val被定义为jsonb(它应该是)。如果它是“唯一”json使用json_array_elements()。如果它不是 even json,而是 just text,那么就施放它val::jsonb


推荐阅读