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

MySQL - Kombinerer flere WHEN-betingelser i CASE

hvad med det her?

SELECT  CASE 
          WHEN org.size IN (0, 1) THEN '<26'
          WHEN org.size = 2 THEN '26-50'
          WHEN org.size = 3 THEN '51-100'
          WHEN org.size = 4 THEN '101-250'
          WHEN org.size = 5 THEN '251-500'
          WHEN org.size = 6 THEN '501-1000'
          WHEN org.size = 7 THEN '1001-5000'
        ELSE '5000+' END AS Size, ....

Problemet er, at du grupperer posterne org.size forårsager <26 på to forskellige grupper, da de oprindeligt er 0 og 1 .

Dette vil virke,

GROUP BY CASE 
          WHEN org.size IN (0, 1) THEN '<26'
          WHEN org.size = 2 THEN '26-50'
          WHEN org.size = 3 THEN '51-100'
          WHEN org.size = 4 THEN '101-250'
          WHEN org.size = 5 THEN '251-500'
          WHEN org.size = 6 THEN '501-1000'
          WHEN org.size = 7 THEN '1001-5000'
        ELSE '5000+' END



  1. MariaDB JSON_REMOVE() Forklaret

  2. Postgres datatype cast

  3. Forbindelsen mislykkedes:Adgang nægtet for brugeren 'root'@'localhost' (ved hjælp af adgangskode:JA) fra php-funktionen

  4. MariaDB JSON_SET() Forklaret