1 Вопрос: Объединить два столбца результатов MySQL, где один или другой столбец будет не нулевым

вопрос создан в Wed, May 8, 2019 12:00 AM

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

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

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

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

 введите описание изображения здесь

    
1
  1. А что создает ваш код?
    2019-05-08 18: 43: 32Z
  2. @ GordonLinoff Я получаю синтаксическую ошибку, хотите верьте, хотите нет, если в то время мой фактический запрос был не совсем таким. Я думаю, что AS, возможно, помог или получил другую ошибку.
    2019-05-09 13: 55: 00Z
1 ответ                              1                         

Вы ищете 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), когда установлен только один. р>     

2
2019-05-08 16: 10: 02Z
источник размещен Вот