Один столбец из нескольких столбцов из объединения SQL - PullRequest
0 голосов
/ 28 мая 2020

У меня есть такой вывод таблицы, который является результатом объединения нескольких таблиц.

+---------+------+--------+------+
|   Id    | V1   | V2     | V3   | 
+---------+------+--------+------+
|    1    | x1   | null   |  null|
|    2    | x2   | null   |  null|
|    3    | null | x3     |  null|
|    4    | null | x4     |  null|
|    5    | null | null   |  x9  |
+---------+------+--------+------+

Я пытаюсь получить такую ​​таблицу.

+---------+------+
|   Id    | V    |  
+---------+------+
|    1    | x1   | 
|    2    | x2   | 
|    3    | x3   |
|    4    | x4   |
|    5    | x5   |
+---------+------+

Это что я делаю сейчас делаю. Не знаю, как объединить три столбца в один столбец.

select a.identifier, a.v1, b.v2, c.v3,
from table a
full join table b on a.identifier = b.identifier
full join table c on a.identifier = c.identifier
where a.v REGEXP 'some condition'

Ответы [ 2 ]

1 голос
/ 28 мая 2020

Если у вас есть только одно значение в строке - или если вам просто нужно первое - используйте coalesce():

select id, coalesce(v1, v2, v3) as v
from t;
1 голос
/ 28 мая 2020

Обратите внимание на - COALESCE () Function , она возвращает первое ненулевое значение в списке.

...