Объединить два столбца результатов MySQL, где один или другой столбец будет не нулевым - PullRequest
1 голос
/ 08 мая 2019

Я хотел бы объединить результаты в столбце A и столбце B в один столбец, за исключением NULL, где я остался с результатами в столбце A + B.Я могу гарантировать, что либо A, либо B содержат NULL.

Я думал, что смогу добиться этого с помощью чего-то вроде:

SELECT IFNULL(Table1.A, Table2.B) FROM `Table1`
  LEFT JOIN `Table2` ON
    *SOME ARBITRARY CONDITION*;

Изображение результата, который я пытаюсьчтобы получить для визуализации:

enter image description here

1 Ответ

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

Вы ищете COALESCE():

SELECT COALESCE(A, B, "") AS `A+B` FROM tbl

Возвращает первое значение, которое не равно NULL. Вы можете использовать столько значений, сколько захотите, даже запасной вариант.
("" пустая строка в моем примере)

Или, если вы можете не , гарантируйте, что существует только одно значение, а остальные имеют значение NULL:

SELECT CONCAT_WS(",", A, B) AS `A+B` FROM tbl

Это приведет к «Apple, Pear» (A + B), если A и B оба установлены, и к «Apple» (только A) или «Pear» (только B), когда установлен только один.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...