объедините пустые столбцы, чтобы получить желаемое объединение в запросе

#mysql #sql #coalesce

Вопрос:

если мой стол выглядит так :

ID Имя Страна
1 касис Непал
2 самика
3 Австралия

Как я могу объединить это, чтобы получить что-то вроде :

Объединенный(желаемый)
1,касис,Непал
2,самика
3,Австралия
 select id || coalesce(name,'') || coalesce(country,'') from Emptable;
 

дает мне :

Объединено(Ошибка)
1казисНепал
2самика
3Австралия

без разделения запятыми. (В oracle,mysql)

Комментарии:

1. coalesce(name || ',', '')

2. Вы используете MySQL или Oracle?

Ответ №1:

В использовании MySQL

 SELECT CONCAT_WS(',', id, name, country)
FROM Emptable;
 

Эта функция пропускает нули, а не КОНКАТ().


В использовании Oracle, например,

 SELECT id || ',' || TRIM(BOTH ',' FROM name || ',' || country)
FROM Emptable;
 

Запрос предполагает, что либо name или country не равно НУЛЮ.

Комментарии:

1. а как насчет Оракула ?