Как объединить два столбца с двоеточием ":" в postgres - PullRequest
1 голос
/ 09 июля 2019

У меня есть следующая таблица

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

Мне нужен вывод как

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

Как объединить два столбца как один, соединенный двоеточием :?

Ответы [ 2 ]

2 голосов
/ 09 июля 2019

С ответом на ваш ответ на предыдущий вопрос , использование функции 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
....
2 голосов
/ 09 июля 2019

Для этого можно использовать concat_ws():

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

concat_ws() будет правильно обрабатывать значения NULL и пустые строки (в отличие, например, name1||' : '||name2)

...