SQL CASE pareiškimas
The CASE pareiškimas SQL yra universali sąlyginė išraiška, leidžianti įtraukti sąlyginė logika tiesiogiai mūsų užklausose. Tai leidžia jums pateikti konkrečius rezultatus, pagrįstus tam tikromis sąlygomis, įgalinančius dinamines užklausos išvestis. Nesvarbu, ar reikia sukurti naujus stulpelius keisti esamas arba tinkinti savo užklausų išvestį CASE pareiškimas gali viską susitvarkyti.
Šiame straipsnyje mes išmoksime SQL CASE sakinys išsamiai su aiškiais pavyzdžiais ir naudojimo atvejais, kurie parodo, kaip panaudoti šią funkciją tobulinant SQL užklausas.
CASE pareiškimas SQL
- The
CASEpareiškimas SQL yra sąlyginė išraiška, leidžianti atlikti sąlyginę logiką užklausoje.
- Jis dažniausiai naudojamas kuriant naujus stulpelius, pagrįstus sąlygine logika, teikiant pasirinktines reikšmes arba valdant užklausos išvestis pagal tam tikras sąlygas.
- Jei jokia sąlyga nėra teisinga, tada KITAS dalis bus įvykdyta. Jei nėra kitos dalies, ji grąžinama NULL.
Sintaksė:
Norėdami naudoti CASE pareiškimą SQL, naudokite šią sintaksę:
CASE case_value
KADA sąlyga TAI rezultatas1
KADA sąlyga TAI rezultatas2
...
Kitas rezultatas
GALINĖ DĖLĖ;
SQL CASE pareiškimo 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 | 21 | xxxxxxxxxx |
| 3 | Naveenas | Tulasi | Šri Lanka | 24 | xxxxxxxxxx |
| 4 | Aditya | Arpan | Austrija | 21 | xxxxxxxxxx |
| 5 | Nishant. Salchichas S.A. | Jain | Ispanija | 22 | xxxxxxxxxx |
Tą pačią duomenų bazę galite sukurti savo sistemoje parašydami šią MySQL užklausą:
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');1 pavyzdys: paprasta CASE išraiška
Šiame pavyzdyje naudojame teiginį CASE
Užklausa:
SELECT CustomerName Age CASE WHEN Country = 'India' THEN 'Indian' ELSE 'Foreign' END AS Nationality FROM Customer;Išvestis:
| Kliento vardas | Amžius | Tautybė |
|---|---|---|
| Abejoti | 23 | Indijos |
| Saugus | 21 | Užsienio |
| Naveenas | 24 | Užsienio |
| Aditya | 21 | Užsienio |
| Nishant. Salchichas S.A. | 22 | Užsienio |
2 pavyzdys: SQL CASE, kai yra kelios sąlygos
Į CASE teiginį galime įtraukti kelias sąlygas naudodami kelias KADA išlygos.
Užklausa:
SELECT CustomerName Age CASE WHEN Age> 22 THEN 'The Age is greater than 22' WHEN Age = 21 THEN 'The Age is 21' ELSE 'The Age is over 30' END AS QuantityText FROM Customer;Išvestis:
| Kliento vardas | Amžius | QuantityText |
|---|---|---|
| Abejoti | 23 | Amžius yra didesnis nei 22 metai |
| Saugus | 21 | Amžius yra 21 metai |
| Naveenas | 24 | Amžius yra didesnis nei 22 metai |
| Aditya | 21 | Amžius yra 21 metai |
| Nishant. Salchichas S.A. | 22 | Amžius virš 30 metų |
3 pavyzdys: CASE pareiškimas su punktu ORDER BY
Paimkime klientų lentelę, kurioje yra Kliento ID Kliento Vardas Pavardė Šalis Amžius ir Telefonas. Kliento lentelės duomenis galime patikrinti naudodami UŽSAKYTI 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:
| Kliento vardas | Šalis |
|---|---|
| Saugus | Australija |
| Aditya | Austrija |
| Nishant. Salchichas S.A. | Ispanija |
| Naveenas | Šri Lanka |
| Abejoti | Indija |
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 IR ir ARBA.
- Galime įtraukti kelis WHEN teiginius ir ELSE teiginį, kad būtų išvengta neadresuotų sąlygų.
Išvada
The CASE Teiginys suteikia tvirtą mechanizmą sąlyginei logikai įtraukti į SQL užklausas. Naudodami šį teiginį galite tvarkyti įvairias sąlygas ir efektyviai tinkinti savo užklausų išvestį. Supratimas, kaip įgyvendinti CASE išraiškos leidžia atlikti sudėtingesnį duomenų apdorojimą ir ataskaitų teikimą, todėl jūsų SQL užklausos tampa dinamiškesnės ir labiau reaguoja į skirtingus scenarijus.