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
Leave A Comment?