Novo

Forum kao aplikacija na telefonu

Dodajte forum na početni ekran i koristite ga kao aplikaciju, sa menijem na dnu ekrana.

  • 11 odgovora
  • 5.985 pregleda

Najnovija ↓

Uskladistene procedure u Ms SQL Serveru 12.11.2006. u 22:35 · pre 243 meseca #1
Umam jedan problem.
Na koji nacin mogu uskladistenu proceduru da napisem u sledecem obliku

...
Select ....
Where (...)
if @abd =1
and (iskaz1...)
else
and (iskaz2...)

Gde je @abc ulazni parametar (npr. izbor na radio dugmetu u nekom programu)
Re: Uskladistene procedure u Ms SQL Serveru 12.11.2006. u 22:49 · pre 243 meseca #2
Code:

CREATE PROCEDURE test 
   @abd int
AS 
SELECT * FROM tabela WHERE polje = @abd
GO

Valjda si na to mislio.
Re: Uskladistene procedure u Ms SQL Serveru 13.11.2006. u 16:39 · pre 243 meseca #3
Hvala na odgovoru, ali nisam na to mislio.

Potrebno je da procedura izgleda otprilike ovako:
(tabela naka na primer ima polja: a, b, c, d, e, f)
x, y, z, g, h su neke konstante
CREATE PROCEDURE test
@abd int
AS
SELECT * FROM tabela WHERE a<x and b>y
IF @abd = 1
(and c =z or d <g)
else
and f>h
GO
Znaci potrebno je da unutar "Select" iskaza ubacim iskaz "IF".
Re: Uskladistene procedure u Ms SQL Serveru 13.11.2006. u 17:02 · pre 243 meseca
izmenjeno 1 put, poslednji put Fedya 13.11.2006. u 19:53
  1. Fedya13.11.2006. u 19:53zapis iz teksta poruke
#4
Mozes da napises nesto kao:

WHERE a<b AND (CASE @param WHEN 1 THEN c<d ELSE f<g END)

nisam siguran (ne mogu sad da proverim) ali tako nekako bi trebalo da moze. Ako ne podje eksperimentisi malo sa CASE za to sluzi ;)
Potpis
Every hamster has his day.
Re: Uskladistene procedure u Ms SQL Serveru 15.11.2006. u 08:16 · pre 243 meseca
izmenjeno 1 put, poslednji put logic_rabbit 15.11.2006. u 14:54
  1. logic_rabbit15.11.2006. u 14:54zapis iz teksta poruke
#6
IF @abd = 1
BEGIN
SELECT * FROM tabela WHERE a<x and b>y
and (c =z or d <g)
END
ELSE
BEGIN
SELECT * FROM tabela WHERE a<x and b>y
and f>h
END
Potpis
logic_rabbit (MCAD,MCSD,MCT,MCTS-
Windows development,MCPD)
Re: Uskladistene procedure u Ms SQL Serveru 15.11.2006. u 09:16 · pre 243 meseca #7
Citat:
logic_rabbit: IF @abd = 1
BEGIN
SELECT * FROM tabela WHERE a<x and b>y
(and c =z or d <g)
else
and f>h
END
ELSE
BEGIN
SELECT * FROM tabela WHERE a<x and b>y
END


Da, ovo je dobar primer kako NE TREBA raditi. U redu, ovo je jednostavan primer, ali da je u pitanju neka slozenija procedura bukvalno bi imao kopiju iste procedure sa malim razlikama. Odlucis da promenis nesto, moras dobro da pazis da se to menja na oba mesta inace... Ovo je leglo bagova.
Potpis
Every hamster has his day.
Re: Uskladistene procedure u Ms SQL Serveru 15.11.2006. u 14:56 · pre 243 meseca #8
Bila je greska u brzini.Ovo je resenje a sad da li je pametno to je druga stvar...
Potpis
logic_rabbit (MCAD,MCSD,MCT,MCTS-
Windows development,MCPD)
Re: Uskladistene procedure u Ms SQL Serveru 15.11.2006. u 19:57 · pre 242 meseca #9
Definitivno nije dobro svako rešenje koje duplira kôd...

Ovi problemi se rešavaju jednostavnim proširenjem where uslova:

npr. primer koji ti iznosiš:
Citat:
goranue:
SELECT * FROM tabela
WHERE a<x and b>y
IF @abd = 1
(and c =z or d <g)
else
and f>h

bi se napisao kao:
Code:

WHERE a<x and b>y
AND (@abd <> 1 OR c = z or d < g)
AND (@abd = 1 OR f > h)

Inače, pitanje nema apsolutno nikakve veze sa uskl. procedurama.
Re: Uskladistene procedure u Ms SQL Serveru 16.11.2006. u 08:02 · pre 242 meseca
izmenjeno 1 put, poslednji put logic_rabbit 16.11.2006. u 14:25
  1. logic_rabbit16.11.2006. u 14:25zapis iz teksta poruke
#10
Citat:
jablan: Definitivno nije dobro svako rešenje koje duplira kôd...

Ovi problemi se rešavaju jednostavnim proširenjem where uslova:

npr. primer koji ti iznosiš:

bi se napisao kao:
Code:

WHERE a<x and b>y
AND (@abd <> 1 OR c = z or d < g)
AND (@abd = 1 OR f > h)

Inače, pitanje nema apsolutno nikakve veze sa uskl. procedurama.



Tvoje resenje je posve tacno i elegantno resenje koje se cesto koristi.
Potpis
logic_rabbit (MCAD,MCSD,MCT,MCTS-
Windows development,MCPD)
Re: Uskladistene procedure u Ms SQL Serveru 29.06.2011. u 10:41 · pre 186 meseci #11
Pozdrav svima, da li neko zna gdje se moze skinuti dobra knjiga za 'SQL Procedure'?
Da obuhvata pocetak rada sa procedurama i primjere...
Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme