logo

SQL CASE pareiškimas

SQL CASE sakinys yra sąlyginė išraiška, leidžianti vartotojams atlikti skirtingus veiksmus pagal skirtingas sąlygas. Tai panaši į if-else logiką kitose programavimo kalbose.

CASE pareiškimas SQL

CASE išraiška SQL pereina visas sąlygas ir sustoja, kai įvykdoma bet kuri sąlyga. Ji netikrina, ar nėra kitų sąlygų, kai sąlyga yra teisinga, ir pateikia rezultatus pagal tą sąlygą.

Jei jokia sąlyga nėra teisinga, ELSE dalis bus vykdoma. Jei nėra kitos dalies, ji grįžta NULL.



Sintaksė

Norėdami naudoti CASE pareiškimą SQL, naudokite šią sintaksę:

CASE case_value
KADA sąlyga TADA rezultatas1
KADA sąlyga TADA rezultatas2

Kitas rezultatas
GALAS CASE;

SQL CASE pavyzdys

Pažvelkime į kelis CASE teiginio SQL pavyzdžius, kad jį geriau suprastume.

Sukurkime demonstracinę SQL lentelę, kuri bus naudojama pavyzdžiuose.

Demonstracinė SQL duomenų bazė

SQL CASE sakinio pavyzdžiams naudosime šią SQL lentelės pavyzdį:

Kliento IDKliento vardasPavardėŠalisAmžiusTelefonas
1AbejotiThakurIndija23xxxxxxxxxx
2SaugusChopraAustralijadvidešimt vienasxxxxxxxxxx
3NaveenasTulasiŠri Lanka24xxxxxxxxxx
4AdityaArpanAustrijadvidešimt vienasxxxxxxxxxx
5Nishant. Dešrelės S.A.JainIspanija22xxxxxxxxxx

Tą pačią duomenų bazę galite sukurti savo sistemoje, parašydami šią MySQL užklausą:

MySQL
CREATE TABLE Customer(  CustomerID INT PRIMARY KEY,  CustomerName VARCHAR(50),  LastName VARCHAR(50),  Country VARCHAR(50),  Age int(2),  Phone int(10) ); -- Insert some sample data into the Customers table INSERT INTO Customer (CustomerID, CustomerName, LastName, Country, Age, Phone) VALUES (1, 'Shubham', 'Thakur', 'India','23','xxxxxxxxxx'),  (2, 'Aman ', 'Chopra', 'Australia','21','xxxxxxxxxx'),  (3, 'Naveen', 'Tulasi', 'Sri lanka','24','xxxxxxxxxx'),  (4, 'Aditya', 'Arpan', 'Austria','21','xxxxxxxxxx'),  (5, 'Nishant. Salchichas S.A.', 'Jain', 'Spain','22','xxxxxxxxxx');>

CASE išraiškos pavyzdys

Šiame pavyzdyje naudojame teiginį CASE

Užklausa:

  SELECT   CustomerName, Age  ,    CASE   WHEN Country = 'India' THEN 'Indian'  ELSE 'Foreign' END AS Nationality FROM Customer;>

SQL CASE, kai yra kelios sąlygos, pavyzdys

Į CASE teiginį galime įtraukti kelias sąlygas naudodami kelias KADA išlygos.

Užklausa:

  SELECT   CustomerName, Age,   CASE     WHEN   Age>22 TAI 'Amžius yra didesnis nei 22' KAI Amžius = 21 TAI 'Amžius yra 21' KITA 'Amžius yra vyresnis nei 30' BAIGTI AS QuantityText FROM Kliento;>

Išvestis:

kelių sąlygų pridėjimas prie atvejo teiginio pavyzdžio išvesties

Išvestis

CASE pareiškimas su ORDER BY punktu Pavyzdys

Paimkime klientų lentelę, kurioje yra kliento ID, kliento vardas, pavardė, šalis, amžius ir telefonas. Kliento lentelės duomenis galime patikrinti naudodami RŪŠIUOTI PAGAL sąlyga su CASE teiginiu.

Užklausa:

  SELECT   CustomerName, Country   FROM   Customer   ORDER BY  (  CASE     WHEN   Country IS 'India'   THEN   Country    ELSE   Age   END  );>

Išvestis:

atvejo pareiškimas su tvarka pagal sakinį pavyzdžio išvestis

CASE pareiškimas su ORDER BY sąlyga Išvesties pavyzdys

Svarbūs punktai apie CASE pareiškimą

  • SQL CASE sakinys yra sąlyginė išraiška, leidžianti vykdyti skirtingas užklausas pagal nurodytas sąlygas.
  • Visada turi būti a PASIRINKTI CASE pareiškime.
  • END KITA yra neprivalomas komponentas, bet KADA TADA šie atvejai turi būti įtraukti į CASE teiginį.
  • Mes galime sudaryti bet kokį sąlyginį teiginį naudodami bet kurį sąlyginį operatorių (pvz., KUR ) tarp KADA ir TADA. Tai apima kelių sąlyginių teiginių sujungimą naudojant AND ir OR.
  • Galime įtraukti kelis WHEN teiginius ir ELSE teiginį, kad būtų išvengta neadresuotų sąlygų.