PostgreSQL 中關於字串拆分與合併

2021-10-05 13:18:21 字數 1248 閱讀 2137

with person_name as

(select c.id,

array_to_string(array_agg(

distinct p.c_name)

,' , '

)as p_name

from biz_notification_config c

join biz_notification_person p

on p.id =

any(string_to_array(c.persons,

',')::int

)group

by c.id),

group_name as

(select c.id,

array_to_string(array_agg(

distinct g.c_name)

,' , '

)as g_name

from biz_notification_config c

join biz_notification_group g

on g.id =

any(string_to_array(c.c_groups,

',')::int

)group

by c.id

)select config.

*, person_name.p_name, group_name.g_name

from biz_notification_config config

left

join person_name

on config.id = person_name.id

left

join group_name

on config.id = group_name.id;

array_to_string(array_agg(distinct g.c_name), 』 , '):將陣列轉換為字串,用「,」分隔。(有點類似於mysql的group_concat()函式)。

array_agg(distinct 想要合併的資料):將想要的資料變成陣列。

string_to_array(c.c_groups, 『,』):將字串按照「,」分隔成陣列。

any (string(varchar)::int):將字串轉換為整形。

id = any(list):id的值存在於list中,注意list要和id為同種型別。

本人粗淺理解,要是有出錯的地方希望各位大佬可以指正!!!

關於PostgreSQL編碼

開始學習db sql,用的是postgresql,字元編碼問題鬧心了。查閱網上資料,焦點集中在以下三個方面 資料庫伺服器編碼 資料庫客戶端編碼 本地環境編碼。檢視postgresql server編碼的方法 postgres show server encoding server encoding ...

Postgresql 轉義字元

今天碰到乙個問題,就是postgresql中怎麼在引號中定義變數,想了各種方法,也沒有解決,下面是我找到的神似的內容。在postgresql 9之前的版本中,可以直接使用反斜槓 進行轉義 比如 b表示退格,n表示換行,t表示水平製表符,r標示回車,f表示換頁。除此之外還支援 digits和 xhex...

關於postgresql 常用操作指令

關於postgresql 常用操作指令 建立資料庫 create database test with owner postgres encoding utf8 進入控制台方法,在postgresql的安裝目的bin下執行命令 psql 資料庫名,例 usr local pgsql bin psql...