[SQL] getallen sorteren op groote

Pagina: 1
Acties:
  • 444 views sinds 30-01-2008
  • Reageer

  • GoVegan
  • Registratie: Juni 2002
  • Laatst online: 16-08 22:25
he hoi

ben bezig soort score lijst voor een spelletje, de scores zitte allemaal in een access database als volgt:
150
200
23
925
548

als ik deze nu oproep op asp pagina met volgende sql voorbeeldje dan sorteerd hij ze op het alfabet.

code:
1
2
3
SELECT *
FROM score
ORDER BY score


en dat is niet echt de bedoeling.
de hoogste moet dus uiteindelijk bovenaanstaan en de laaste onderaan.
is dit makkelijk in het sql stukje aan te passen?

peter

Verwijderd

Het effect van ORDER BY is afhankelijk van het kolom type. Als je kolom type numeriek is, wordt er dus numeriek gesorteerd, en met alfanumerieke kolommen is de sortering dus alfanumeriek.

Kortom, pas je kolom type aan. :)

Verwijderd

en descending orderen wil ook nog wel eens helpen ;) (DESC dus)

  • fleppuhstein
  • Registratie: Januari 2002
  • Laatst online: 21-10-2025
Verwijderd schreef op 22 January 2003 @ 05:31:
en descending orderen wil ook nog wel eens helpen ;) (DESC dus)
Nope DESC helpt niet, zoals je al zegt staat voor descending, dus aflopend sorteren.

De veldtype moet op numeriek staan

  • Cardinal
  • Registratie: Maart 2002
  • Laatst online: 22:16
dan moet het acending zijn

  • fleppuhstein
  • Registratie: Januari 2002
  • Laatst online: 21-10-2025
Dat doet ie dus al automatisch als jij zegt ORDER BY blaat

  • Cardinal
  • Registratie: Maart 2002
  • Laatst online: 22:16
dat doet hij idd al automatisch voordat je met order by aan de slag gaat. in de order by kan je nog andere dingen gebruiken

Verwijderd

fleppuhstein schreef op 22 January 2003 @ 08:30:
[...]

Nope DESC helpt niet, zoals je al zegt staat voor descending, dus aflopend sorteren.

De veldtype moet op numeriek staan

Ik zeg en!!!

Maar goed, om het even aan te tonen ;)

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
mysql> describe score;
+-------+-------------+------+-----+---------+-------+
| Field | Type        | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+-------+
| score | varchar(10) | YES  |     | NULL    |       |
+-------+-------------+------+-----+---------+-------+
1 row in set (0.00 sec)
 
mysql> SELECT * FROM score;
+-------+
| score |
+-------+
| 10    |
| 100   |
| 2     |
| 90    |
| 900   |
| 50    |
+-------+
6 rows in set (0.00 sec)
 
mysql> SELECT * FROM score ORDER BY score DESC;
+-------+
| score |
+-------+
| 900   |
| 90    |
| 50    |
| 2     |
| 100   |
| 10    |
+-------+
6 rows in set (0.00 sec)
 
mysql> ALTER TABLE score CHANGE score score INT;
Query OK, 6 rows affected (0.01 sec)
Records: 6  Duplicates: 0  Warnings: 0
 
mysql> SELECT * FROM score;
+-------+
| score |
+-------+
|    10 |
|   100 |
|     2 |
|    90 |
|   900 |
|    50 |
+-------+
6 rows in set (0.02 sec)
 
mysql> SELECT * FROM score ORDER BY score DESC;
+-------+
| score |
+-------+
|   900 |
|   100 |
|    90 |
|    50 |
|    10 |
|     2 |
+-------+
6 rows in set (0.00 sec)
 
mysql>

  • whoami
  • Registratie: December 2000
  • Laatst online: 22:42
Ehm Nelske, wat wil je hiermee nu aantonen? :?

Als je getallen wilt sorteren, moet het veldtype van de column waar die getallen instaan ten eerste numeriek zijn.
Wil je ze aflopend sorteren, moet je DESC gebruiken in je order by clause
Wil je ze oplopend sorteren kan je ASC gebruiken, maar het hoeft niet. (default ordering is ASC).

https://fgheysels.github.io/


Verwijderd

Wat ik aan wil tonen? :
en dat is niet echt de bedoeling.
de hoogste moet dus uiteindelijk bovenaanstaan en de laaste onderaan.
is dit makkelijk in het sql stukje aan te passen?
[/nohtml]

:)

Schijnt iedereen hier overheen te lezen :?

edit:

En dat ze nummeriek moeten zijn, geef ik ook al aan in mijn eerste antwoord en wederom in de code

[ Voor 30% gewijzigd door Verwijderd op 22-01-2003 09:04 ]


  • whoami
  • Registratie: December 2000
  • Laatst online: 22:42
Owja, idd. Desc heb je nodig.... Veldtype numeriek en order by desc.

https://fgheysels.github.io/


Verwijderd

Dat probeer ik al de hele tijd te zeggen 8)7 ;)

  • Banpei
  • Registratie: Juli 2001
  • Laatst online: 20:35
Je hoeft ook niet meteen de database te wijzigen naar een nummeriek veld als je bij je select het selecteerd als een binair getal. Als je dan de sort doet zou ie de volgorde dus wel goed moeten doen.

  • whoami
  • Registratie: December 2000
  • Laatst online: 22:42
Banpei schreef op 22 januari 2003 @ 10:28:
Je hoeft ook niet meteen de database te wijzigen naar een nummeriek veld als je bij je select het selecteerd als een binair getal. Als je dan de sort doet zou ie de volgorde dus wel goed moeten doen.


Tja, maar dan moet je iedere row gaan converten bij het ophalen, en dat komt de performance niet ten goede.
De topicstarter heeft gewoon een designfout gemaakt, dat veld moest een numeriek veld zijn, en door het te converteren is het opgelost.

https://fgheysels.github.io/


  • Banpei
  • Registratie: Juli 2001
  • Laatst online: 20:35
whoami schreef op 22 januari 2003 @ 10:30:
Tja, maar dan moet je iedere row gaan converten bij het ophalen, en dat komt de performance niet ten goede.
De topicstarter heeft gewoon een designfout gemaakt, dat veld moest een numeriek veld zijn, en door het te converteren is het opgelost.
Heb je geheel gelijk in. Ben zeker met je eens dat het beter is om het gewoon te wijzigen in een nummeriek veld, maar soms heb je niet altijd de mogelijkheid/toegang om het te wijzigen, dus ik draag het gewoon aan als een suggestie.

Verwijderd

Wel handig om dat in het vervolg even bij te zetten, aangezien je het nu aandraagt als een alternatief, terwijl het i.m.o. geen goed alternatief is (tenzij je niet veel rechten op de DB hebt, wat erg onwaarschijnlijk is als je met een dergelijk program bezig bent). Als er andere redenen zijn waarom je het type niet aan kan passen, dan heb je nog meer designfouten gemaakt ;)

  • GoVegan
  • Registratie: Juni 2002
  • Laatst online: 16-08 22:25
whoami schreef op 22 January 2003 @ 09:11:
Owja, idd. Desc heb je nodig.... Veldtype numeriek en order by desc.
klopt ja ik heb nu mijn veld numeriek gemaakt (database was toch nog niet zo groot) en hij werkt nu lekker.. :z

bedankt he
Pagina: 1