sql >> Databasteknik >  >> RDS >> Mysql

Hur man använder CASE Statement i MySQL?

Med en enorm mängd data som genereras varje dag är det viktigt att hämta data baserat på några få förhållanden. I den här artikeln om CASE-satsen i MySQL kommer jag att diskutera hur man använder den här satsen för att hämta data om ett enstaka villkor eller flera villkor.

Följande ämnen kommer att behandlas i den här artikeln:

  • Introduktion till SQL
  • Vad är syftet med SQL?
  • CASE i MySQL
  • Syntax för CASE i MySQL
  • Exempel på CASE i MySQL

Vad är SQL?

SQL är ett domänspecifikt språk som används flitigt i programmering. Den är designad för att hantera data som finns i ett relationsdatabashanteringssystem (RDBMS), eller för strömbehandling i ett relationsdataströmhanteringssystem. Generellt sett är SQL ett standardspråk som hjälper till att lagra, manipulera och hämta data i databaser.

Vad är syftet med SQL?

SQL används i princip för att kommunicera med en databas. Enligt ANSI (American National Standards Institute) anses det vara standardspråket för relationsdatabashanteringssystem (RDBMS). Vi använder SQL-satser för att utföra uppgifter som att uppdatera, infoga, ta bort eller hämta data från en databas.

Vad är CASE-satsen i MySQL?

CASE-sats i MySQL är ett sätt att hantera if/else-logiken. Det är en sorts kontrollsats som bildar cellen av programmeringsspråk eftersom de kontrollerar exekveringen av andra uppsättningar satser.

CASE-satsen går igenom olika villkor och returnerar värden när och när det första villkoret är uppfyllt (som en IF-THEN-ELSE-sats på lågnivåspråk). När ett villkor är sant kommer det att sluta korsa och returnera resultatet. Om inget av villkoren är sant, returnerar det värdet i ELSE-satsen.

Om det inte finns någon ELSE-sats och inget av villkoren är sant, returnerar den helt enkelt NULL.

Syntax för CASE-satsen i MySQL

Grundläggande syntax:

CASE
    WHEN condition1 THEN result1
    WHEN condition2 THEN result2
    WHEN conditionx THEN resultx
    ELSE result
END;

Det kan finnas två sätt att uppnå CASE-Switch-satser:

  • Tar en variabel som heter case_value och matchar den med någon statement_list.
CASE case_value
    WHEN when_value THEN statement_list
    [WHEN when_value THEN statement_list] ...
    [ELSE statement_list]
END;
  • Tänk på ett sökvillkor istället för variabellikhet och kör satslistan i enlighet med detta.
CASE
    WHEN search_condition THEN statement_list
    [WHEN search_condition THEN statement_list] ...
    [ELSE statement_list]
END;

Exempel på CASE-sats i MySQL

Låt oss överväga en tabell:STUDENT

Studenttabell

Student-ID Namn Avdelning Kön
001 Akash CS M
002 Bikram Mek M
003 Chadan CS M
004 Deepak CS M
005 Elicia EC F
006 Fernandes Mek F

Exempel: Tänk på ett scenario där du måste ändra avdelningsnamnen till deras fullständiga former. Om avdelningens namn är CS, bör det konverteras till datavetenskap; På samma sätt bör Mech konverteras till Mechanical.och EC till Electronic and Communication.

Exempelfråga

CASE department_name
WHEN 'CS'
  THEN UPDATE Student SET
  department='Computer Science';
 WHEN 'EC'
  THEN UPDATE Student SET
  department='Electronics and Communication';
 ELSE UPDATE Student SET
 department=’Mechanical';
END;

Utdata:

Motsvarande avdelningsnamn döps om enligt följande:

Student-ID Namn Avdelning Kön
001 Akash Datavetenskap M
002 Bikram Mekanisk M
003 Chadan Datavetenskap M
004 Deepak Datavetenskap M
005 Elicia Elektronik och kommunikation F
006 Fernandes Mekanisk F

Exempel: Tänk på ett scenario där du måste välja alla fält som motsvarar elevtabellen. Eftersom värdena som skrivs i fältet Gender är enstaka tecken (M/F), låt oss skriva en fråga för att ändra M till Man och F till Female.

Exempelfråga

SELECT Student ID, Name, Department,
CASE Gender
 WHEN'M' THEN 'Male'
 WHEN'F' THEN 'Female'
END
FROM Student;

Utdata:

Student-ID Namn Avdelning Kön
001 Akash Datavetenskap Man
002 Bikram Mekanisk Man
003 Chadan Datavetenskap Man
004 Deepak Datavetenskap Man
005 Elicia Elektronik och kommunikation Kvinna
006 Fernandes Mekanisk Kvinna

CASE-växel i SQL-anpassad sortering

Exempelfråga

CREATE PROCEDURE GetStudent(@ColToSort varchar(150)) AS
SELECT StudentID, Name, Gender, Department
FROM Student
ORDER BY
  CASE WHEN @ColToSort='Department' THEN Department
       WHEN @ColToSort='Name' THEN Name
       WHEN @ColToSort='Gender' THEN Gender
       ElSE StudentID
  END;

Utdata:

Utdata sorteras enligt det angivna fältet.

Ovanstående procedur (funktion) tar en variabel av varchar-datatyp som sitt argument och sorterar på grundval av detta tuplarna i elevtabellen. Dessutom kan vi också använda CASE-satser för att jämföra förhållanden.

Exempel: Tänk på en tabell med namnet KONTAKTER som innehåller kontakt-ID och ett webbplats-ID. Enligt dessa uppgifter kan en användare navigera genom dessa länkar:'TechOnTheNet.com' eller 'CheckYourMath.com'.

Exempelfråga

SELECT
CASE
&nbsp;&nbsp;WHEN contact_id < 1000 THEN 'TechOnTheNet.com'
&nbsp;&nbsp;WHEN website_id = 2 THEN 'CheckYourMath.com'
END
FROM contacts;

Det måste vara klart vid det här laget att när man skriver falluttalanden i MySQL är en viktig faktor att "ordna dem på rätt sätt". Kom bara ihåg att villkoren utvärderas i den ordning du anger. När något villkor blir sant, kommer CASE-satsen att returnera resultatet och inte utvärdera villkoren ytterligare. Så var försiktig när du väljer i vilken ordning du listar dina villkor.

Om du vill lära dig mer om MySQL och lära känna denna relationsdatabas med öppen källkod, kolla in vår MySQL DBA Certification Training som kommer med instruktörsledd liveutbildning och verklig- erfarenhet av livsprojekt. Den här utbildningen hjälper dig att förstå MySQL på djupet och hjälper dig att behärska ämnet.

Har du en fråga till oss? Vänligen nämn det i kommentarsektionen i denna "CASE Statement in MySQL" så återkommer vi till dig.


  1. Hur man korrekt skapar sammansatta primärnycklar - MYSQL

  2. Integrera MySQL med Python i Windows

  3. Finns det en kombination av GILLA och IN i SQL?

  4. Enkel Slony-I replikeringsinställning.