arrays - 如何在 postgresSQL 中将一个嵌套数组转换为一个简单数组
问题描述
我很难弄清楚如何将嵌套数组转换为 postgresSQL 中的简单数组。
我有一个包含内容的列[["one", "two", "three"]]
,我想将该列更改为["one", "two", "three"]
. 所以基本上要删除一个嵌套数组。
有谁知道该怎么做?
编辑:我需要通过 ALTER COLUMN 更新数据库上的所有当前值
解决方案
假设您没有 JSON 数组,您可以使用unnest()
将所有元素提取到一行中并重新聚合这些元素:
SELECT ARRAY(
SELECT unnest(/*your array*/)
)
延伸阅读:
如果你有 JSON 数组,你可以
使用
json_array_elements()
提取所有元素SELECT json_array_elements(a) FROM ( SELECT '[["one", "two", "three"]]'::json as a )
或者您只需使用
->
运算符来获取第一个元素:SELECT a -> 0 FROM ( SELECT '[["one", "two", "three"]]'::json as a )s
更新所有 JSON 数据:
UPDATE t
SET mydata = mydata -> 0;
推荐阅读
- .net - Rest Api 标头授权
- java - 通过 jdeveloper 12.2.1.4 IDE 在 weblogic 服务器上部署 Springboot 应用程序
- javascript - 如何将类组件转换为函数组件
- java - 澄清字符编码的工作原理
- python - Pyomo Constraint iteration for Optimal Power Flow
- reactjs - React Navigator 5; Tab Navigator and Stack Navigator
- unity3d - Unity Shader Graph, UV Map decomposition to use as opacity gradient
- python - Timedelta returned by tzinfo object
- sql - SuiteQL cannot includes keyword 'DISTINCT'?
- html - 引导导航的菜单和标志问题