|
| "ORDER BY" problem ... Fra : Rune Baess |
Dato : 10-08-01 14:25 |
|
Jeg har en kolonne i en tabel der indeholder typeværdier defineret som
bestemte tal. (sat i tabellen fra en <select> - liste)
Når jeg skal trække dem ud, vil jeg gerne sortere dem på en bestemt måde, -
som i dette tilfælde hverken er ASC eller DESC, men efter en bestemt
rækkefølge jeg selv definerer. Jeg ved i forvejen at alle værdier ligger i
området 0-8...
Det ville jo være at foretrække, frem at skulle lave 9 forskelle udtræk i
den ønskede rækkefølge...
Min SQL sætning ligner dette:
SELECT * FROM kursus WHERE (kat = 2) ORDER BY type ASC;
- men ville helere frem til noget der ligner
SELECT * FROM kursus WHERE (kat = 2) ORDER BY type [liste];
Hvor listen fx, kunne være (1, 0, 3, 2, 4, 5, 6, 7, 8)
- - - Kan man det ? - - -
Rune
PS. jeg kører på SQL server 7, og har brugt flere timer på at bladre SQL
bogen / MSDN igennem, men kan ikke finde andet end ASC og DESC, men det
hedder jo nok noget andet når det kommer til stykket...
| |
Bo Møller-Nielsen (10-08-2001)
| Kommentar Fra : Bo Møller-Nielsen |
Dato : 10-08-01 22:45 |
|
Hej Rune.
Hvis du opretter en ny tabel som indeholder de værdier du ønsker at
bruge (0 - 8) og for hver af disse tal angiver en vægtning, så vil du
ved et opslag i begge tabeller kunne få den ønskede sortering
SELECT * FROM kursus, TABEL WHERE Kursus.Tal = TABEL.Tal ORDER BY
Tabel.Vaegt;
Mvh.
Bo Møller-Nielsen
On Fri, 10 Aug 2001 15:25:15 +0200, "Rune Baess"
<rune@(removethisthing)baess.dk> wrote:
>
>
>Jeg har en kolonne i en tabel der indeholder typeværdier defineret som
>bestemte tal. (sat i tabellen fra en <select> - liste)
>
>Når jeg skal trække dem ud, vil jeg gerne sortere dem på en bestemt måde, -
>som i dette tilfælde hverken er ASC eller DESC, men efter en bestemt
>rækkefølge jeg selv definerer. Jeg ved i forvejen at alle værdier ligger i
>området 0-8...
>
>Det ville jo være at foretrække, frem at skulle lave 9 forskelle udtræk i
>den ønskede rækkefølge...
>
>Min SQL sætning ligner dette:
>SELECT * FROM kursus WHERE (kat = 2) ORDER BY type ASC;
>
>- men ville helere frem til noget der ligner
>SELECT * FROM kursus WHERE (kat = 2) ORDER BY type [liste];
>
>Hvor listen fx, kunne være (1, 0, 3, 2, 4, 5, 6, 7, 8)
>
> - - - Kan man det ? - - -
>
>Rune
>
>PS. jeg kører på SQL server 7, og har brugt flere timer på at bladre SQL
>bogen / MSDN igennem, men kan ikke finde andet end ASC og DESC, men det
>hedder jo nok noget andet når det kommer til stykket...
>
>
>
>
>
| |
Rune Baess (10-08-2001)
| Kommentar Fra : Rune Baess |
Dato : 10-08-01 22:44 |
|
> Hvis du opretter en ny tabel som indeholder de værdier du ønsker at
> bruge (0 - 8) og for hver af disse tal angiver en vægtning, så vil du
> ved et opslag i begge tabeller kunne få den ønskede sortering
> SELECT * FROM kursus, TABEL WHERE Kursus.Tal = TABEL.Tal ORDER BY
> Tabel.Vaegt;
Klart, jeg stillede også spørgsmålet i databasegruppen, og en smart person
kom med næsten samme idé, blot ved at lave en join (left) i stedet...
Rune
| |
|
|