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 CASE pareiš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.

Sukurti viktoriną