Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

GROUP_CONCAT retorna NULL se algum valor for NULL


Em um IF expressão verifica se algum valor é NULL no grupo. Posso pensar em algumas maneiras de fazer isso:

1) Conte os valores não nulos e compare-os com o número de linhas no grupo:
SELECT a, IF(COUNT(b) = COUNT(*), GROUP_CONCAT(b), NULL) AS bs
FROM gc
GROUP BY a

Veja funcionando online:sqlfiddle

2) Conte o número de valores nulos usando SUM :
SELECT a, IF(SUM(b IS NULL) = 0, GROUP_CONCAT(b), NULL) AS bs
FROM gc
GROUP BY a

Veja funcionando online:sqlfiddle