sql >> Database teknologi >  >> RDS >> Mysql

Hvordan bruger man CASE Statement i MySQL?

Med en enorm mængde data, der genereres hver dag, er det vigtigt at hente data baseret på nogle få forhold. I denne artikel om CASE-sætningen i MySQL vil jeg diskutere, hvordan man bruger denne erklæring til at hente data om en enkelt tilstand eller flere forhold.

Følgende emner vil blive dækket i denne artikel:

  • Introduktion til SQL
  • Hvad er formålet med SQL?
  • CASE i MySQL
  • Syntaks for CASE i MySQL
  • Eksempel på CASE i MySQL

Hvad er SQL?

SQL er et domænespecifikt sprog, som er flittigt brugt i programmering. Det er designet til styring af data indeholdt i et relationelt databasestyringssystem (RDBMS) eller til strømbehandling i et relationelt datastrømstyringssystem. Generelt er SQL et standardsprog, som hjælper med at lagre, manipulere og hente data i databaser.

Hvad er formålet med SQL?

SQL bruges grundlæggende til at kommunikere med en database. Ifølge ANSI (American National Standards Institute) betragtes det som standardsproget for relationelle databasestyringssystemer (RDBMS). Vi bruger SQL-sætninger til at udføre opgaver såsom at opdatere, indsætte, slette eller hente data fra en database.

Hvad er CASE-sætningen i MySQL?

CASE-sætning i MySQL er en måde at håndtere if/else-logikken på. Det er en slags kontroludsagn, som danner cellen af ​​programmeringssprog, da de kontrollerer udførelsen af ​​andre sæt af udsagn.

CASE-sætningen gennemgår forskellige betingelser og returnerer værdier, når og når den første betingelse er opfyldt (som en IF-THEN-ELSE-sætning på sprog på lavt niveau). Når en betingelse er sand, stopper den med at krydse og returnere resultatet. Hvis ingen af ​​betingelserne er sande, returnerer det værdien i ELSE-sætningen.

Hvis der ikke er nogen ELSE-klausul, og ingen af ​​betingelserne er sande, returnerer den blot NULL.

Syntaks for CASE-sætning i MySQL

Grundlæggende syntaks:

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

Der kan være to måder at opnå CASE-Switch-udsagn på:

  • Tager en variabel kaldet case_value og matcher den med en statement_list.
CASE case_value
    WHEN when_value THEN statement_list
    [WHEN when_value THEN statement_list] ...
    [ELSE statement_list]
END;
  • Overvej en søgebetingelse i stedet for variabel lighed, og udfør sætningslisten i overensstemmelse hermed.
CASE
    WHEN search_condition THEN statement_list
    [WHEN search_condition THEN statement_list] ...
    [ELSE statement_list]
END;

Eksempel på CASE-sætning i MySQL

Lad os overveje en tabel:STUDENT

Tabel for elever

Student-id Navn Afdeling 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

Eksempel: Overvej et scenario, hvor du skal ændre afdelingsnavnene til deres fulde formularer. Hvis afd.navnet er CS, skal det konverteres til Datalogi; Ligeledes bør Mech konverteres til Mechanical.og EC til Electronic and Communication.

Eksempelforespørgsel

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;

Output:

De tilsvarende afdelingsnavne omdøbes som følger:

Student-id Navn Afdeling Køn
001 Akash Computervidenskab M
002 Bikram Mekanisk M
003 Chadan Computervidenskab M
004 Deepak Computervidenskab M
005 Elicia Elektronik og kommunikation F
006 Fernandes Mekanisk F

Eksempel: Overvej et scenarie, hvor du skal vælge alle felter, der svarer til elevtabellen. Da værdierne skrevet i feltet Køn er enkelttegnsværdier (M/F), lad os skrive en forespørgsel for at ændre M til Mand og F til Kvinde.

Eksempelforespørgsel

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

Output:

Student-id Navn Afdeling Køn
001 Akash Computervidenskab Mand
002 Bikram Mekanisk Mand
003 Chadan Computervidenskab Mand
004 Deepak Computervidenskab Mand
005 Elicia Elektronik og kommunikation Kvinde
006 Fernandes Mekanisk Kvinde

CASE Switch i SQL- Custom Sortering

Eksempelforespørgsel

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;

Output:

Oputtet bliver sorteret i henhold til det angivne felt.

Ovenstående procedure (funktion) tager en variabel af varchar-datatypen som sit argument og sorterer på det grundlag tuplerne i elevtabellen. Desuden kan vi også bruge CASE-udsagn til at sammenligne forhold.

Eksempel: Overvej en tabel med navnet CONTACTS, som indeholder contactID og et websiteID. Ifølge disse detaljer kan en bruger navigere gennem disse links:'TechOnTheNet.com' eller 'CheckYourMath.com'.

Eksempelforespørgsel

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å være klart nu, at mens du skriver Case-udsagn i MySQL, er en vigtig faktor at 'bestille dem på den rigtige måde'. Bare husk, at betingelserne vurderes i den rækkefølge, du har angivet. Når en betingelse bliver sand, vil CASE-erklæringen returnere resultatet og ikke evaluere betingelserne yderligere. Så vær forsigtig, mens du vælger den rækkefølge, du angiver dine betingelser i.

Hvis du ønsker at lære mere om MySQL og lære denne open source relationsdatabase at kende, så tjek vores MySQL DBA Certification Training, som kommer med instruktør-ledet live-træning og real- livsprojekterfaring. Denne træning vil hjælpe dig med at forstå MySQL i dybden og hjælpe dig med at opnå beherskelse over emnet.

Har du et spørgsmål til os? Nævn det i kommentarfeltet i denne "CASE Statement in MySQL", så vender vi tilbage til dig.


  1. Fordele og ulemper ved at bruge SqlCommand Prepare i C#?

  2. Returnerer resultat selv for elementer i IN-listen, der ikke findes i tabellen

  3. SQL SELECT-syntaks – Listet efter DBMS

  4. Oracle vælg til opdateringsadfærd