#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. а как насчет Оракула ?