PG的数据类型(一)——数组类型

本文介绍了PostgreSQL数据库中数组类型的使用,包括创建测试表、插入数据时遇到的问题及解决方案,详细展示了数据存储形式,并探讨了如何从复杂结构中提取个人财产出资信息。

PG里面的数组类型的使用(因为MySQL之前是没有数组类型的)

1.创建测试表:

create table test_array(
id serial primary key,
info text[][]
);

插入数据测试:

insert into test_array(info) values ('[["姓名", "出资方式"], ["任守智", "个人财产出资"]]');

DETAIL: “[” must introduce explicitly-specified array dimensions.
报错说:”[“必须指定明确地数组维度。

使用其他方式插入数据:

insert into test_array(info) values ('{{"姓名", "出资方式"}, {"任守智", "个人财产出资"}}');
insert into test_array(info) values (ARRAY[['姓名', '出资方式'], ['任守智', '个人财产出资']]);--Array构造器语法

可以插入成功。

  1. 查看数据,发现数据数据是这样存储的:
verticledata=> select * from test_array;
 id |                  info
----+-----------------------------------------
  1 | {{姓名,出资方式},{任守智,个人财产出资}}
  2 | {{姓名,出资方式},{任守智,个人财产出资}}
(2 行记录)
  1. 使用数组,可以发现数组的index从1开始。
verticledata=> select info[1][1] from test_array;
 info
------
 姓名
 姓名
(2 行记录)

verticledata=> select info[2][2] from test_array;
     info
--------------
 个人财产出资
 个人财产出资
(2 行记录)

那现在我的问题是:我需要把个人财产出资从‘[[“姓名”, “出资方式”], [“任守智”, “个人财产出资”]]’这里面取出来该怎么办?

将中括号替换为花括号即可,但是文档里面没有找到这个函数。。。。

select ((replace(replace("投资人信息",'[','{'),']','}'))
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值