sql >> Database >  >> RDS >> Oracle

Hoe som met voorwaardelijke instructie voor hoofdletters werkt in sql

Vermoedelijk is dit het deel dat u moeilijk kunt begrijpen:

  select deptno,
         sum(case when jobname = 'Analyst' then 1 else 0 end) as numAnalysts
  from employees
  group by deptno

Dit is eigenlijk een eenvoudige aggregatiequery. Wat de query doet is:

  • Bekijk elke rij in employees
  • Als jobname is 'Analyst' wijs vervolgens de waarde van 1 . toe (dit is het case verklaring. Otherwise, assign a value of 0`.
  • Aggregatie per afdeling, waarbij de zojuist berekende waarde wordt opgeteld. Dit heeft als effect dat het aantal analisten wordt geteld.

case is een expressie die een waarde retourneert. De sum() is simpelweg die waarde voor elke groep optellen.



  1. Juiste manier om een ​​rangordeveld voor een queryset te annoteren

  2. UTF-8-databaseprobleem

  3. Wat zijn de voordelen van VistaDB

  4. Gebruik Cloud Formation-sjablonen om MySQL-instanties op RDS te laten draaien