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.
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
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.
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.