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 ID | Kliento vardas | Pavardė | Šalis | Amžius | Telefonas |
|---|---|---|---|---|---|
| 1 | Abejoti | Thakur | Indija | 23 | xxxxxxxxxx |
| 2 | Saugus | Chopra | Australija | dvidešimt vienas | xxxxxxxxxx |
| 3 | Naveenas | Tulasi | Šri Lanka | 24 | xxxxxxxxxx |
| 4 | Aditya | Arpan | Austrija | dvidešimt vienas | xxxxxxxxxx |
| 5 | Nishant. Dešrelės S.A. | Jain | Ispanija | 22 | xxxxxxxxxx |
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:

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:

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