如何在postgres中将两列与冒号“:”结合起来

How to combine two column with colon ":" in postgres

我有一个table如下

name1  | name2 
-------+--------
ishi   | python  
ishi   | scala  
ishi   | java  
sangee | java
sangee | c# 

我需要输出为

   name   
----------------
ishi   : python  
ishi   : scala  
ishi   : java  
sangee : java
sangee : c#

如何将两列合并为一个冒号 :

您可以使用 concat_ws()

select concat_ws(' : ', name1, name2) as name
from the_table;

concat_ws() 将正确处理 NULL 值和空字符串(不同于 name1||' : '||name2

跟进您的 , using CONCAT() 函数将给出预期的结果:

select CONCAT(st.name1, ' : ', dm.name2) AS name
from mainpk ms
join student st on st.id1 = ms.id1 
join domain dm on dm.id2 = ms.id2

或使用字符串连接运算符||

select st.name1 || ' : ' || dm.name2 AS name
....