在PostgreSQL 中可以使用Array資料結構
轉發: https://blog.csdn.net/sinat_36414791/article/details/80671702
在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
---------------------
作者:JoshuaChan530
來源:CSDN
原文:https://blog.csdn.net/sinat_36414791/article/details/80671702
版權宣告:本文為博主原創文章,轉載請附上博文連結!