Cum realizezi o interogare decizionala intr-o instructiune SQL SELECT

Configurare noua (How To)

Situatie

Doresti sa obtii anumite rezultate in urma interogarii unei tabele din baza de date in functie de anumite conditii.

Solutie

De exemplu, avem o tabela de produse care contine si campurile Uzat si InStoc. Conditia care se impune pentru vanzarea produselor este ca acestea sa fie in stoc sau sa nu fie uzate. Vrem sa aflam care dintre produse indeplinesc aceasta conditie.

Instructiunea CASE este cea mai apropiata de instructiunea decizionala IF in SQL si este suportata de toate versiunile de SQL Server

SELECT CASE 
            WHEN Uzat = 'N' or InStoc = 'Y' 
               THEN 1 
               ELSE 0 
       END as DeVanzare, * 
FROM Produse

Instructiunea CASE poate fi incorporata in alte instructiuni CASE, iar acestea, la randul lor, pot fi incluse in agregate.

Incepand cu SQL Server 2012 a fost adaugata instructiunea IIF valabila si in Microsoft Access, cu ajutorul careia sintaxa de mai sus ar putea fi transcrisa astfel

SELECT IIF(Uzat = 'N' or InStoc = 'Y', 1, 0) as DeVanzare, * FROM Produse

Tip solutie

Permanent

Voteaza

(21 din 45 persoane apreciaza acest articol)

Despre Autor

Leave A Comment?