Avatar billede donpedrodelavega Nybegynder
30. marts 2004 - 11:12 Der er 5 kommentarer og
1 løsning

Dynamisk "order by" i Stored Procedure

Nogen fortael mig at der er andre maader at lave en dynamisk angivelse af "order by" kriteriet end en "switch case" i en Stored Procedure paa en Sql Srv 2k ?

/ DP
Avatar billede bennytordrup Nybegynder
30. marts 2004 - 11:13 #1
Ikke mig bekendt
Avatar billede donpedrodelavega Nybegynder
30. marts 2004 - 11:17 #2
er der en god grund til at det er saadan... ?
(...mere saa jeg en dag kan fortaelle mine boerneboern hvordan bedstefar fik sine foerste graa haar)

/ DP
Avatar billede bennytordrup Nybegynder
30. marts 2004 - 11:45 #3
Der er en anden måde, men den er langt dummere at arbejde med end en case i order by.

Den går ud på at lave et sæt select per sorteringskombination - dvs. din stored procedure vokser vanvittigt, hvis du har en lidt større forespørgsel eller mange sorteringsmuligheder.
Avatar billede donpedrodelavega Nybegynder
30. marts 2004 - 12:13 #4
...ja og man kan ogsaa bare lave en if - then - else...
og maanen er lavet af groen ost og kejseren har ikke noget toej paa (som den 12-aarige dreng pegede paa manden og sagde i eventyret om den forfaengelige kejser...

kors man.. hvad er det en ent.edt. licens koster... 50.000 danske inflationsramte kroner ?

Indtil nu har jeg vaere grundigt imponeret og tilfreds med de Sql srv'ere jeg har arbejdet med... men det her er da ikke til at leve med...

bt... jeg sender pts. i din retning for din deltagelse... jeg takker mange gange (selvom jeg maaske ikke lyder taknemlig for hjaelpen, saa er jeg det altsaa, men jeg vil da finde et andet trae at goe op af og ikke bekymre mig om at goere min T-Sql bedre paa det pkt. ihvertilfald)

/ DP
Avatar billede donpedrodelavega Nybegynder
30. marts 2004 - 12:16 #5
det skal jo lige siges at en af grundene til min harme er at en "case" i T-Sql udelukkende understoetter skalara vaerdier, saa man kan ikke engang lave en "case" paa en varchar....  :(

/ DP
Avatar billede bennytordrup Nybegynder
30. marts 2004 - 12:57 #6
Hvis du med scalare værdier mener int, så kan et trick være at konvertere alt specifikt til varchar i et format, hvor sorteringen stadig bliver korrekt.

Hvis du ikke laver nogle cast/convert, så laver SQL Server et implicit cast til den højest rangerende datatype, og det er netop int.
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