объединяющие поля с нулевыми значениями - PullRequest
1 голос
/ 23 сентября 2011

плохо начну со слова «Да, я знаю, что моя таблица не соответствует 1NF». Я работаю с чем-то старым и не могу это изменить. поэтому, пожалуйста, без комментариев об этом.

сейчас, к проблеме:

select title,address,zip,city, concat(telefon1,',',telefon2,',',telefon3) as phone

проблема в том, что он работает нормально, пока один из столбцов в concat не станет пустым или пустым. если это так, то я получаю Null результат для телефонной колонки. если все три имеют значения, все работает как положено.

как я могу преодолеть эту проблему?

Ответы [ 2 ]

4 голосов
/ 23 сентября 2011

Попробуйте это:

SELECT title,address,zip,city,CONCAT(
    COALESCE(telefon1,''), ',',
    COALESCE(telefon2,''), ',',
    COALESCE(telefon3,'')) as phone
1 голос
/ 23 сентября 2011

Оберните каждый телефонный столбец в ifnull(...,''), чтобы null стал пустым.

select ..., 
    concat(ifnull(telefon1,''),',',ifnull(telefon2,''),',',ifnull(telefon3,'')) as phone
...