Пару надеемся на полезные рекомендации по принятому ответу Яна:
(['"])((?:\\\1|.)+?)\1|([^\s"']+)
Сделайте GROUP BY
. Используйте MAX()
(например), чтобы выбрать ненулевые значения:
select id, max(c2), max(c3), max(c4)
from tablename
group by id