Mysql
 sql >> Base de données >  >> RDS >> Mysql

GROUP_CONCAT renvoie NULL si une valeur est NULL

Dans un IF expression vérifie si une valeur est NULL dans le groupe. Je peux penser à plusieurs façons de procéder :

1) Comptez les valeurs non nulles et comparez-les au nombre de lignes du groupe :

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

Voyez-le fonctionner en ligne :sqlfiddle

2) Comptez le nombre de valeurs nulles en utilisant SUM :

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

Voyez-le fonctionner en ligne :sqlfiddle