這篇文章主要介紹了解決PostgreSQL Array使用中的解決一些小問題,具有很好的用中參考價值,希望對大家有所幫助。問題一起跟隨小編過來看看吧。解決
在PostgreSQL 中可以使用Array數(shù)據(jù)結構,用中例如
select array[1,問題2,3];
return { 1,2,3}
但是,如果
select array[1,解決2,3][1]; --會報錯
select (select array[1,2,3])[1] --可以使用
那么在用正則匹配函數(shù) regexp_match 就會遇到這樣的問題,如
select regexp_match('123-123',用中 '(\d+)-(\d+)'); --return { 123, 123}
select regexp_match('123-123', '(\d+)-(\d+)')[1]; --報錯
但是,如果你想獲取其中一個元素,問題你就得使用嵌套查詢,解決如
1select(select regexp_match('123-123',用中 '(\d+)-(\d+)'))[1]; --return 123
其次,你如果要用regexp_matches 加上全局搜索,問題可能會生成多行數(shù)據(jù),解決如
select 'a',用中 array(select regexp_matches('aa-aa', '(aa)+', 'g'));
-- return 2 rows
a { aa}
a { aa}
合并為一行,需要array函數(shù)
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 功能
開始
用 第二個參數(shù)連接數(shù)組元素,例:
postgres=# select array_to_string (ARRAY[1,2,3],'##');
array_to_string
-----------------
1##2##3
(1 row)
postgres=#
結束~
文章來源:腳本之家
來源地址:https://www.jb51.net/article/204877.htm