logo

MySQL CASE-expressie

MySQL CASE-expressie is een onderdeel van de controlestroomfunctie waarmee we een als-anders of als-dan-anders logica voor een query. Deze expressie kan overal worden gebruikt waar een geldig programma of een geldige query wordt gebruikt, zoals de clausule SELECT, WHERE, ORDER BY, enzovoort.

De CASE-expressie valideert verschillende voorwaarden en retourneert het resultaat wanneer de eerste voorwaarde dat is WAAR . Zodra aan de voorwaarde is voldaan, stopt het met doorlopen en wordt de uitvoer gegeven. Als geen van de voorwaarden waar is, wordt de opdracht uitgevoerd anders blokkeren . Wanneer het else-blok niet wordt gevonden, retourneert het a NUL waarde. Het hoofddoel van MySQL De CASE-instructie heeft betrekking op meerdere IF-instructies in de SELECT-clausule.

We kunnen de CASE-instructie op twee manieren gebruiken, namelijk:

1. Eenvoudige CASE-instructie:

De eerste methode is om een ​​waarde te nemen en deze te matchen met de gegeven instructie, zoals hieronder weergegeven.

C#

Syntaxis

 CASE value WHEN [compare_value] THEN result [WHEN [compare_value] THEN result ...] [ELSE result] END 

Het retourneert het resultaat wanneer de eerste vergelijk_waarde vergelijking wordt waar. Anders wordt de else-clausule geretourneerd.

Voorbeeld

 mysql> SELECT CASE 1 WHEN 1 THEN 'one' WHEN 2 THEN 'two' ELSE 'more' END; 

Uitvoer

Na de succesvolle uitvoering van het bovenstaande commando zullen we de volgende uitvoer zien.

MySQL CASE-expressie

2. Gezochte CASE-instructie:

De tweede methode is om te overwegen a zoek_voorwaarde in de WANNEER clausules, en als dit wordt gevonden, retourneert u het resultaat in de overeenkomstige THEN-clausule. Anders wordt de else-clausule geretourneerd. Als de else-clausule niet is opgegeven, retourneert deze een NULL-waarde.

Syntaxis

 CASE WHEN [condition] THEN result [WHEN [condition] THEN result ...] [ELSE result] END 

Voorbeeld

 mysql> SELECT CASE BINARY 'B' WHEN 'a' THEN 1 WHEN 'b' THEN 2 END; 

Uitvoer

MySQL CASE-expressie

Retourtype

De CASE-expressie retourneert het resultaat, afhankelijk van de context waarin deze wordt gebruikt. Bijvoorbeeld:

  • Als het in de stringcontext wordt gebruikt, retourneert het het stringresultaat.
  • Als het in een numerieke context wordt gebruikt, retourneert het de gehele, float, decimale waarde.

Ondersteuning voor MySQL-versie

De CASE-instructie kan de volgende MySQL-versies ondersteunen:

  • MySQL 8.0
  • MySQL 5.7
  • MySQL 5.6
  • MySQL 5.5
  • MySQL 5.1
  • MySQL 5.0
  • MySQL 4.1
  • MySQL 4.0
  • MySQL 3.23.3

Laten we een tabel maken ' studenten ' en voer de CASE-instructie uit op deze tabel.

MySQL CASE-expressie

In de bovenstaande tabel kunnen we zien dat de klasse kolom bevat de korte vorm van de afdeling van de student. Daarom gaan we de korte vorm van de afdeling vervangen door de volledige vorm. Voer nu de volgende query uit om deze bewerking uit te voeren.

CSS opvullen
 SELECT studentid, firstname, CASE class WHEN 'CS' THEN 'Computer Science' WHEN 'EC' THEN 'Electronics and Communication' ELSE 'Electrical Engineering' END AS department from students; 

Na de succesvolle uitvoering van de bovenstaande query krijgen we de volgende uitvoer. Hier kunnen we zien dat de afdeling kolom bevat volledige vorm in plaats van een korte vorm.

MySQL CASE-expressie