Bez obzira sto je u pitanju storovana, njemu na osnovu vrednosti u redu treba da se vrate ili ne vrate odredjena polja za taj isti red. IF-ELSE tu nije resenje, osim ako ne bi radio dva upita i onda UNION ta dva upita u hardcode-irao NULLove za kolone koje se ne pojavljuju.
Ovo drugo nije resenje, posto postiji gomila problema koje tu mogu da se pojave. Npr ako se radi pagining dva upita komplikuju stvari (posto treba brojati koliko vrednosti ima). Znaci ako bi tabela izgledala ovako:
1, Pera, False
2, Sima, True
3, Djoka, False
4, Mika, True
I onda rezultat izadje:
1, NULL
2, Sima
3, NULL
4, Mika
I hocemo pagining od dva reda, strana 2, znaci redovi koji nam trebaju su redovi 3 i 4, iz dva upita bi bilo veoma komplikovano izvuci.
Takodje, ako se rade neke agregatne funkcije ili sortiranje to bi se moralo raditi na trecem upitu koji bi bio rezultat uniona... Sve u svemu, CASE je bolje resenje.
Every hamster has his day.