postgresql - 将包含数组的列转换为新行
问题描述
我确实有一张包含下一个数据的表格
val
---
["a", "b", "c"]
["d", "e", "f"]
有没有办法选择并将其输出为
val
----
a
b
c
d
e
f
谢谢!
解决方案
这看起来像一个 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
推荐阅读
- webstorm - 如何从终端打开 WebStorm?
- postgresql - 强制单个受损角色与 PostgresQL 断开连接?
- java - IJ 中 Emacs 选项卡的行为是什么意思?以及“向后切线”的行为?
- php - Yii 仅在服务器上以 post 方法没有收到数据
- c# - C# - 项目部署 (ClickOnce)
- swift - 如何保存单选按钮的状态?
- java - 如何在 Spring Boot Rest 和 Postman 中使用表单数据来保存用户?
- face-detection - 如何仅检测网络摄像头前面的一张脸
- angular - 如何让 Nativescript-ui-sidedrawer 进行横向导航?
- azure-devops - Azure Dev Build Release 测试执行被中止