Izjava SQL CASE je pogojni izraz, ki uporabnikom omogoča izvajanje različnih dejanj na podlagi različnih pogojev. Podobna je logiki if-else v drugih programskih jezikih.
Izjava CASE v SQL
Izraz CASE v SQL gre skozi vse pogoje in se ustavi, ko je kateri koli pogoj izpolnjen. Ne preverja drugih pogojev, potem ko je pogoj vrnil true, in vrne rezultate na podlagi tega pogoja.
Če noben pogoj ni resničen, bo izveden del ELSE. Če ni dela ELSE, se vrne NIČ.
Sintaksa
Za uporabo izjave CASE v SQL uporabite naslednjo sintakso:
OVITEK primer_vrednost
KDAJ stanje POTEM rezultat1
KDAJ stanje POTEM rezultat2
…
drugače rezultat
KONEC OVITEK;
Primer SQL CASE
Oglejmo si nekaj primerov stavka CASE v SQL, da ga bolje razumemo.
Ustvarimo demo tabelo SQL, ki jo bomo uporabili v primerih.
Demo baza podatkov SQL
To vzorčno tabelo SQL bomo uporabili za naše primere izjave SQL CASE:
| Identifikacijska številka stranke | Ime stranke | Priimek | Država | Starost | Telefon |
|---|---|---|---|---|---|
| 1 | Dvom | Thakur | Indija | 23 | xxxxxxxxxx |
| 2 | Varno | Chopra | Avstralija | enaindvajset | xxxxxxxxxx |
| 3 | Naveen | Tulasi | Šrilanka | 24 | xxxxxxxxxx |
| 4 | Aditya | Arpan | Avstrija | enaindvajset | xxxxxxxxxx |
| 5 | Nishant. Sausages S.A. | Jain | Španija | 22 | xxxxxxxxxx |
Isto bazo podatkov lahko ustvarite v svojem sistemu tako, da napišete naslednjo poizvedbo MySQL:
prehod motnosti cssMySQL
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');>
Primer izraza CASE
V tem primeru uporabljamo stavek CASE
poizvedba:
SELECT CustomerName, Age , CASE WHEN Country = 'India' THEN 'Indian' ELSE 'Foreign' END AS Nationality FROM Customer;>
Primer SQL, ko je več pogojev Primer
V stavku CASE lahko dodamo več pogojev z uporabo multiple KDAJ klavzule.
poizvedba:
SELECT CustomerName, Age, CASE WHEN Age>22 THEN 'Starost je večja od 22' WHEN Starost = 21 THEN 'The Age is 21' ELSE 'Starost je več kot 30' END AS QuantityText FROM Customer;>
Izhod:

Izhod
Stavek CASE s stavkom ORDER BY Primer
Vzemimo tabelo strank, ki vsebuje CustomerID, CustomerName, LastName, Country, Age in Phone. Podatke tabele Stranka lahko preverimo z uporabo NAROČI PO klavzula s stavkom CASE.
kako razkriti skrite aplikacije
poizvedba:
SELECT CustomerName, Country FROM Customer ORDER BY ( CASE WHEN Country IS 'India' THEN Country ELSE Age END );>
Izhod:

Stavek CASE s klavzulo ORDER BY Primer izhoda
Pomembne točke o izjavi CASE
- Stavek SQL CASE je pogojni izraz, ki omogoča izvajanje različnih poizvedb na podlagi podanih pogojev.
- Vedno mora obstajati a IZBERI v izjavi CASE.
- END ELSE je neobvezna komponenta, vendar KDAJ TAKRAT ti primeri morajo biti vključeni v stavek CASE.
- S katerim koli pogojnim operatorjem lahko naredimo kateri koli pogojni stavek (npr KJE ) med KDAJ in POTEM. To vključuje nizanje več pogojnih stavkov z uporabo IN in ALI.
- Vključimo lahko več stavkov WHEN in stavek ELSE, da preprečimo nenaslovljene pogoje.