sql >> Databasteknik >  >> RDS >> Mysql

MySQL - Kombinera flera WHEN-villkor i CASE

vad sägs om detta?

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 är att du grupperar posterna org.size orsakar <26 på två olika grupper eftersom de ursprungligen är 0 och 1 .

Detta kommer att fungera,

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. MED KONTROLL LÄGG TILL BEGRÄNSNING följt av KONTROLL BEGRÄNSNING vs. LÄGG TILL BEGRÄNSNING

  2. Hur man fixar frågegrupp med only_full_group_by

  3. Oracle tar bort rader från flera tabeller

  4. Ansluter Oracle till PostgreSQL