主页 > 知识库 > 解决PostgreSQL Array使用中的一些小问题

解决PostgreSQL Array使用中的一些小问题

热门标签:天津开发区地图标注app 400电话申请客服 江苏400电话办理官方 地图标注要花多少钱 济南外呼网络电话线路 广州电销机器人公司招聘 移动外呼系统模拟题 电话机器人怎么换人工座席 电销机器人能补救房产中介吗

在PostgreSQL 中可以使用Array数据结构,例如

select array[1,2,3]; 
return {1,2,3}

但是,如果

select array[1,2,3][1]; --会报错 
select (select array[1,2,3])[1] --可以使用

那么在用正则匹配函数 regexp_match 就会遇到这样的问题,如

select regexp_match('123-123', '(\d+)-(\d+)'); --return {123, 123}
select regexp_match('123-123', '(\d+)-(\d+)')[1]; --报错

但是,如果你想获取其中一个元素,你就得使用嵌套查询,如

select(select regexp_match('123-123', '(\d+)-(\d+)'))[1]; --return 123

其次,你如果要用regexp_matches 加上全局搜索,可能会生成多行数据,如

select 'a', array(select regexp_matches('aa-aa', '(aa)+', 'g'));
-- return 2 rows
a {aa}
a {aa}

合并为一行,需要array函数

select 'a', array(select regexp_matches('aa-aa', '(aa)+', 'g'));
--return 
a {{aa},{aa}}

取其中的元素

select a, b[1][1] from (select 'a' as a, array(select regexp_matches('aa-aa', '(aa)+', 'g')) as b) as c;
--return 
aa

补充:PostgreSQL的 array_to_string 功能

开始

用 第二个参数连接数组元素,例:

postgres=# select array_to_string (ARRAY[1,2,3],'##');
 array_to_string 
-----------------
 1##2##3
(1 row)
postgres=# 

结束~

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。如有错误或未考虑完全的地方,望不吝赐教。

您可能感兴趣的文章:
  • 对Postgresql中的json和array使用介绍
  • postgresql数据库使用说明_实现时间范围查询
  • postgresql 实现将数组变为行
  • PostgreSQL 对数组的遍历操作
  • postgres array_to_string和array的用法讲解

标签:海西 辛集 温州 杭州 昭通 濮阳 榆林 宝鸡

巨人网络通讯声明:本文标题《解决PostgreSQL Array使用中的一些小问题》,本文关键词  解决,PostgreSQL,Array,使用,;如发现本文内容存在版权问题,烦请提供相关信息告之我们,我们将及时沟通与处理。本站内容系统采集于网络,涉及言论、版权与本站无关。
  • 相关文章
  • 下面列出与本文章《解决PostgreSQL Array使用中的一些小问题》相关的同类信息!
  • 本页收集关于解决PostgreSQL Array使用中的一些小问题的相关信息资讯供网民参考!
  • 推荐文章