SQL: альтернатива функции COALESCE (), которая группирует все значения в один столбец - PullRequest
0 голосов
/ 14 мая 2019

У меня есть такая таблица

enter image description here

Использование функции COALESCE () ...

SELECT COALESCE(column1, column2, column3) combinedColumn from t;

Я получаюэто ...

enter image description here

Однако я хочу это ....

enter image description here

Я нашел способ использовать UNION ALL, но это не очень элегантно.Есть ли функция, которая работает как COALESCE (), за исключением того, что включает все значения?Спасибо

1 Ответ

2 голосов
/ 14 мая 2019

Вы не можете использовать объединение здесь, так как может быть более одного значения для возврата

UNION - лучшее решение (не UNION ALL, потому что заготовки)

select column1 from mytable
UNION
select column2 from mytable
UNION
select column3 from mytable

Тем не менее, если вы хотите сохранить дубликаты (если они есть), это UNION ALL или объединение всех столбцов в одну строку, а затем разделение их снова (избегая UNION ALL любой ценой)

...