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...