Mysql
 sql >> база данни >  >> RDS >> Mysql

GROUP_CONCAT връща NULL, ако някоя стойност е NULL

В IF израз проверява дали някоя стойност е NULL в групата. Сещам се за няколко начина да направя това:

1) Пребройте ненулевите стойности и ги сравнете с броя на редовете в групата:

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

Вижте как работи онлайн:sqlfiddle

2) Пребройте броя на нулевите стойности, като използвате SUM :

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

Вижте как работи онлайн:sqlfiddle




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Произволен ред от голям резултат от заявка

  2. Обединяване на множество .sql таблици с дъмп файлове в един файл

  3. Вземете OLD стойност в MySQL Trigger СЛЕД изявление за актуализиране

  4. Инструкция COUNT CASE и WHEN в MySQL

  5. MySQL Търся свободни стаи в системата за резервации