[ patak_daca @ 05.11.2010. 07:33 ] @
Pozdrav!

Kako da napravim stored procedure tako da mi vraća
različite vrednosti polja iz tabele u zavisnosti o vrednosti polja.

Primer...

U tabeli imam tri polja

id
ime
tacnost

ako je je tacnost = 1 , onda vrati vrednost polja ime

ako je je tacnost = 0 , onda umesto vrednost polja ime vrati vrednost netacno

Hvala unapred....

[ Fedya @ 05.11.2010. 11:00 ] @
SELECT
[Id], [Ime], CASE WHEN [tacnost] = 1 THEN [Ime] ELSE 'Netacno' END
FROM ...
[ patak_daca @ 05.11.2010. 11:14 ] @
Pozdrav!!

Hvala puno!!

A ako imam vise polja da vratim ako je je tacnost=1 a samo jedno ako je tacnost=0

Primer..

Polja u tabeli

id
ime
prezime
ulica
grad

ako je tacnost=1 vratim sva polja

a akoje tacnost=0 vratim ime sa vrednoscu netacno..

pozzzz
[ Fedya @ 05.11.2010. 11:21 ] @
Moras pisati case za svako polje i vracati NULL-ove.
[ patak_daca @ 05.11.2010. 11:28 ] @
Pozzz..

a zapravo imam bas puno polja....

Hvala puno....

Patak daca
[ rambo @ 06.11.2010. 09:34 ] @
Obzirom da hoćeš da praviš stored proceduru, onda definiši ulazni parametar procedure i na osnovu njegove vrednosti koju ćeš proveravati sa IF..THEN napiši poseban SELECT query koji radi ono što ti treba.
[ Fedya @ 06.11.2010. 16:28 ] @
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.
[ patak_daca @ 06.11.2010. 17:45 ] @
Pozdrav!!

Hvala puno na pomoci i predlozima......

Patak ...