Avatar billede speder Nybegynder
11. oktober 2001 - 10:34 Der er 17 kommentarer og
1 løsning

ORDER BY

Hej

Jeg har to tabeller:

Tabel 1:
Col1...Col2
4        a
5        b
6        c

Tabel2:
Col3...Col4
1        d
2        e
3        f

Jeg laver følgende SQL-stm:

SELECT * FROM Tabel1 UNION SELECT * FROM Tabel2

Så får jeg sellvfølgelig:

1...d
2...e
3...f
4...a
5...b
6...c

Jeg vil dog gerne have den sådan her:

4...a
5...b
6...c
1...d
2...e
3...f

Det er ikke tilladt at sortere på kolonne 2! (Der står nogle data i den kolonne som ikke nødvendigvis står i alfabetisk rækkefølge).

Kan det lade sig gøre med en special ORDER BY?

M.v.h.

Søren
11. oktober 2001 - 10:36 #1
Hvorfor kan du ikke bare skrive:

SELECT * FROM Tabel1 UNION SELECT * FROM Tabel2 ORDER BY Col2

Hvilken datatype er col2?
Avatar billede terry Ekspert
11. oktober 2001 - 10:39 #2
what do you mean by \"(Der står nogle data i den kolonne som ikke nødvendigvis står i alfabetisk rækkefølge).\"?
11. oktober 2001 - 10:45 #3
Hvis Col2 f.eks. er memo-type, kan du ikke sortere på det, hvorfor du kan ændre kolonnen, hvor du f.eks. tager Left(Col2,255):

SELECT Col1, Left(Col2,255) as SortOrder FROM Tabel1 UNION SELECT Col3, left(Col4,255) FROM Tabel2 ORDER BY SortOrder

/Thomas
Avatar billede terry Ekspert
11. oktober 2001 - 10:51 #4
Cant one just write?

SELECT * FROM Tabel1 UNION SELECT * FROM Tabel2 ORDER BY Left(Col2,255)
11. oktober 2001 - 10:54 #5
Nu skal jeg passe på hvad jeg siger (jeg har været lidt uheldig de sidste par dage!) men du kan slet ikke bruge Memo-felter i en Union-forespørgsel. Så Select * vil give dig en fejl.
Avatar billede terry Ekspert
11. oktober 2001 - 10:57 #6
Correct Thomas, glad someone is awake here. But there is a solution.

Cant one just write?

SELECT fld1, left(fld2,255) as f2 FROM Tabel1 UNION SELECT fld1, left(fld2,255) as f2 FROM Tabel2 ORDER BY f2

 
11. oktober 2001 - 11:02 #7
Eh, isn\'t that exactly what I suggested at 10.45.37? (with other fieldnames though)???

Am I the only one awake her ? ;o)
Avatar billede terry Ekspert
11. oktober 2001 - 11:09 #8
Oh, thats right! Yes it does seem your the only one awake here :o) When you were in doubt as to whether or not you could use a memo in UNION joins I just erased the previous answers and comments. So your suggestion 10.45.37 is valid.

But what does speder say? It may be nothing at all to do with memo fields.

Avatar billede speder Nybegynder
11. oktober 2001 - 11:25 #9
Jeg fik vist ikke forklaret mig helt korrekt. Lidt mere simpelt. Jeg har to tabeller

Tabel1:
Col1
1
2
3

Tabel2:
Col2
4
5
6

Dem vil jeg gerne have vist sådan:

4
5
6
1
2
3

Men hvis jeg bare skriver

SELECT * FROM tabel2 UNION SELECT * FROM tabel1

ja, så sorterer den dem automatisk efter Col. Kan man ikke bare få den til at vise dem efter rækkefølgen i forespørgslen?

Det her er måske fantastisk simpelt og jeg har formået at få det til at lyde fantastisk komplekst.
11. oktober 2001 - 11:30 #10
SELECT *, 1 as sr FROM tabel2 UNION SELECT *, 2 FROM tabel1 ORDER BY sr, Col1
Avatar billede terry Ekspert
11. oktober 2001 - 11:31 #11
SELECT col1 as col FROM tabel2 UNION SELECT col2 as col FROM tabel1 order by col

Avatar billede speder Nybegynder
11. oktober 2001 - 11:33 #12
Tusind tak - det var slet ikke så svært :-) Da jeg skrev først, at der ikke måtte sorteres efter Col2 og Col4 mente jeg, at den skulle ignoreres.
11. oktober 2001 - 11:35 #13
Glad for at det virkede til sidst :o)

Terry-> Fik du fat på, at Speder ville have sorteret data fra Tabel 2 før data fra Tabel 1?
Avatar billede terry Ekspert
11. oktober 2001 - 11:38 #14
Yes, I think I\'de better keep my mind on my work today, I just dont seem to be able to see the mountains for the hills. :o)
11. oktober 2001 - 11:41 #15
Good idea - you just do that!
And don\'t worry: I\'ll be here to answer any questions, that might pop up, so You can concentrate on your work ;o)
Avatar billede terry Ekspert
11. oktober 2001 - 11:44 #16
Oh thanks Thomas, do I get the points that I would otherwise have got, if I was awake? :o)

And why arent you busy too?
11. oktober 2001 - 12:43 #17
Oh, what are points? Nothing but a few bits on a server somewhere - who gives a damn? ;o)

This week has been a little slow - I have had a few meetings and I have had problems with mig back :o(
But tomorrow I begin on a new project! So then you\'ll get your easy frags again ;o) I will still be here though, but not as regularly...

/Thomas
Avatar billede terry Ekspert
11. oktober 2001 - 12:52 #18
Yes your right Thomas, we have talked about that before and I think we agree :o)

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
Dyk ned i databasernes verden på et af vores praksisnære Access-kurser

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