Mysql
 sql >> Database >  >> RDS >> Mysql

GROUP_CONCAT restituisce NULL se qualsiasi valore è NULL

In un IF controllo dell'espressione se un valore è NULL nel gruppo. Mi vengono in mente un paio di modi per farlo:

1) Conta i valori non nulli e confrontalo con il numero di righe nel gruppo:

SELECT a, IF(COUNT(b) = COUNT(*), GROUP_CONCAT(b), NULL) AS bs
FROM gc
GROUP BY a

Guardalo funzionare online:sqlfiddle

2) Conta il numero di valori nulli usando SUM :

SELECT a, IF(SUM(b IS NULL) = 0, GROUP_CONCAT(b), NULL) AS bs
FROM gc
GROUP BY a

Guardalo funzionare online:sqlfiddle