Avatar billede o-zone Nybegynder
04. august 2008 - 13:48 Der er 3 kommentarer og
1 løsning

StoredProcedure som returnerer svar fra flere queries?

Hej med jer...

Jeg har brug for en stored procedure som returnerer ét resultset med resultaterne fra flere forskellige queries.

Det er de samme felter der skal returneres, fra de samme tabeller ... men resultaterne skal komme fra flere forskellige queries (altså de tupler jeg søger skal selectes ud fra flere forskellige betingelser).

Jeg vil tro at man godt kunne fedte sig frem til én lang query - men det ville blive en meget lang satan som ville være totalt uoverskuelig.

Jeg vil hellere have et par små og overskuelige selects, hvis resultater jeg så "piler" i et enkelt resultset som jeg returnerer fra min stored procedure.

Jeg håber lidt på at man kan gøre noget i stil med:
---8<------
@resultat1 = select var1,var2,var3 from tabel1 inner join tabel2 where condition1

@resultat2 = select var1,var2,var3 from tabel1 inner join tabel2 where condition2

return select * from @resultat1 union @resultat2
---8<------

OBS: Eksemplet er meget forsimplet (og sikkert ikke særlig velvalgt), for at fremhæve hvad det er jeg er ude efter. Jeg er IKKE interesseret i at høre, at jeg kan skrive (condition1) OR (condition2) - det er lidt mere komplekst i virkeligheden.
Avatar billede sherlock Nybegynder
04. august 2008 - 13:51 #1
select var1,var2,var3 from tabel1 inner join tabel2 where condition1

union all

select var1,var2,var3 from tabel1 inner join tabel2 where condition2
Avatar billede o-zone Nybegynder
04. august 2008 - 13:57 #2
Hmmm ... hvis ellers det virker, så ser det jo besnærende let ud :-O
Så var jeg alligevel tættere på end jeg anede.

Jeg tester det lige, og vender tilbage med points til dig, hvis det virker! :D
Avatar billede o-zone Nybegynder
04. august 2008 - 15:04 #3
Det ser jo ud til at virke fint :-) ... jeg skulle lige have det hele paranteset ordentligt ind, og smækket ORDER BY ud til sidst udenfor alle mine forskellige select klausuler :)

Smid et svar så jeg kan give dig dine points! :D

P.S. Ved du noget om performance i det her ... er det smartere for mig at lave den lange grimme sql sætning, end at lave en masse mindre og så union'e dem?
Avatar billede sherlock Nybegynder
04. august 2008 - 18:24 #4
:)
Hvis du skriver "den grimme" :), helt perfekt, vil den måske blive marginalt bedre.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Computerworld tilbyder specialiserede kurser i database-management

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester