sql >> Database >  >> RDS >> Mysql

GROUP_CONCAT retourneert NULL als een waarde NULL is

In een IF expressiecontrole of een waarde NULL is in de groep. Ik kan een aantal manieren bedenken om dat te doen:

1) Tel de niet-null-waarden en vergelijk deze met het aantal rijen in de groep:

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

Zie het online werken:sqlfiddle

2) Tel het aantal null-waarden met behulp van SUM :

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

Zie het online werken:sqlfiddle




  1. Verwijder alle rijen behalve de eerste N uit een tabel met een enkele kolom

  2. installeer pakketten van docker-compose.yml in docker-container

  3. Hoe selecteer ik alle records uit de ene tabel die niet in een andere tabel voorkomen?

  4. Laravel 5.4 Raw werkt niet zoals verwacht, maar werkt in mySQL