我有一个包含jsonb格式列的表,其中包含如下数据:

['A', 'B', 'C']

我想将列转换为数组列类型,但我不知道如何正确完成. 我的脚本 struct 示例:

ALTER TABLE "products" ADD COLUMN "test_array" VARCHAR(2)[];

UPDATE "products" SET test_array = do converting here;

ALTER TABLE "products" DROP COLUMN "test";
ALTER TABLE "products" RENAME COLUMN "test_array" TO "test";

推荐答案

语法看起来很奇怪,但它是有效的:

update products 
   set test_array = array(select jsonb_array_elements_text(test));

Working fiddle

Sql相关问答推荐

Postgresql在加入时显示重复的行

在SQL中向每个子字节组添加字节行

使用SQL/R循环查找邻居

在Golang中管理数据库事务的简洁方法

如何将我的联接数据放入每个用户每月多行的列中?

为什么我的SQL标量函数有时会抛出";子查询返回多个值.这是不允许的.

合并分层表SQL中的第一个非空、变化的空位置

根据是否出现过零来筛选数据(跨多行)

PATINDEX中与[A-Z]匹配(U除外)的正则表达式

如何在AWS Athena中 Select JSON数组的最后一个元素?

用VB.NET在Dapper中实现MS Access数据库顺序透视

此过程如何在不引用传递的参数值的情况下执行工作?

SQL查询正在工作,但返回空结果

当 ansible 变量未定义或为空时,跳过 sql.j2 模板中的 DELETE FROM 查询

如何在Hive SQL中分别按多列进行分组?

SQL的左连接在多对多关系情况下使用

添加一列并根据其他列值进行填充

多列上的 SQL UNIQUE 约束 - 它们的组合必须是唯一的还是至少其中之一?

BigQuery 将一行拆分为多列

在 AWS athena 的视图之上创建视图时,如何消除此错误:列别名列表有 1 个条目但t有 4 列可用?