在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=# 

结束~

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

风云阁资源网 Design By www.bgabc.com
广告合作:本站广告合作请联系QQ:858582 申请时备注:广告合作(否则不回)
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!
风云阁资源网 Design By www.bgabc.com

P70系列延期,华为新旗舰将在下月发布

3月20日消息,近期博主@数码闲聊站 透露,原定三月份发布的华为新旗舰P70系列延期发布,预计4月份上市。

而博主@定焦数码 爆料,华为的P70系列在定位上已经超过了Mate60,成为了重要的旗舰系列之一。它肩负着重返影像领域顶尖的使命。那么这次P70会带来哪些令人惊艳的创新呢?

根据目前爆料的消息来看,华为P70系列将推出三个版本,其中P70和P70 Pro采用了三角形的摄像头模组设计,而P70 Art则采用了与上一代P60 Art相似的不规则形状设计。这样的外观是否好看见仁见智,但辨识度绝对拉满。