Toon posts:

[ ASP/SQL ] Query : Order by kolomnaam

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik heb een tabel met kolommen genaamd:

v1,v2,v3,v4 etc etc

In de tabel zijn de kolommen echter niet gesorteerd, dus:
code:
1
2
3
4
5
-------------------------
| v1  | v24 | v3  | v18 |
-------------------------
| nee | ja  | nee | nee |
-------------------------

Ik wil dus graag in mijn query opgeven dat hij die kolommen moet sorten, dus een ORDER BY [columnname]... of iets dergelijks.
Mogelijk ? Zo ja, hoe pakken we dat aan ?

  • vivo53280
  • Registratie: September 2001
  • Laatst online: 17-02-2019
Kan :)

ORDER BY v1
sorteert v1

ORDER BY v1,v2,v3
sorteert eerst v1 dan v2, dan v3

ORDER BY V1 desc

desc= descending (aflopend)
asc = ascending

Verwijderd

Topicstarter
Op dinsdag 02 april 2002 15:24 schreef vivo53280 het volgende:
Kan :)

ORDER BY v1
sorteert v1

ORDER BY v1,v2,v3
sorteert eerst v1 dan v2, dan v3

ORDER BY V1 desc

desc= descending (aflopend)
asc = ascending
Dat bedoel ik niet

Op de pagina worden de kolommen namelijk weergegeven zoals het staat in de bovenste post, de bedoeling is dat de kolommen oplopend op de pagina worden gezet. De query moet dus zelf aan de hand van de kolomnaam het zaakie sorteren. (de kolomnamen wil ik dus niet meegeven)

Verwijderd

Je wil ze in de browser zo tonen:
code:
1
2
3
4
5
-------------------------
| v1  | v2  | v3  | v4  |
-------------------------
| nee | nee | nee | nee |
-------------------------

in plaats van
code:
1
2
3
4
5
-------------------------
| v1  | v24 | v3  | v18 |
-------------------------
| nee | ja  | nee | nee |
-------------------------

dat zit niet in je query maar in je ASP code.

Verwijderd

Topicstarter
Op dinsdag 02 april 2002 15:35 schreef vanDee het volgende:
Je wil ze in de browser zo tonen:
code:
1
2
3
4
5
-------------------------
| v1  | v2  | v3  | v4  |
-------------------------
| nee | nee | nee | nee |
-------------------------

in plaats van
code:
1
2
3
4
5
-------------------------
| v1  | v24 | v3  | v18 |
-------------------------
| nee | ja  | nee | nee |
-------------------------

dat zit niet in je query maar in je ASP code.
Juist, maar in de ASP code kun je wel een dergelijke query uitvoeren...
Hoe kan ik dit anders oplossen ?

Verwijderd

In ASP vuur je je query af.
Nadat de query uit gevoerd is zul je je gegevens op 't scherm moeten toveren, nou DIE code moet je aanpassen

  • drm
  • Registratie: Februari 2001
  • Laatst online: 09-06-2025

drm

f0pc0dert

volgens mij wil ik je database-ontwerp niet zien :X :X

Music is the pleasure the human mind experiences from counting without being aware that it is counting
~ Gottfried Leibniz


Verwijderd

Topicstarter
In ASP vuur je je query af.
Nadat de query uit gevoerd is zul je je gegevens op 't scherm moeten toveren, nou DIE code moet je aanpassen
De query wordt in een recordset gezet:
" Set RS = DataConn.Execute(sqlstr)"
sqlstr bevat * uit een willekeurige tabel

Daarna loop ik door de recordset doormiddel van een
Do while NOT rs.EOF
....
rs.movenext


Hoe sorteer ik die kolomnamen dan ? door een leuke functie los te laten op die recordset ?
Dat moet toch in die query al opgelost kunnen worden ?
Op dinsdag 02 april 2002 16:08 schreef drm het volgende:
volgens mij wil ik je database-ontwerp niet zien :X :X
Ten eerste: Volgens mij wil ik dit soort reacties helemaal niet zien |:(

Ten tweede: Ik ben niet degene die de database ontworpen heeft

Verwijderd

Hoogswaarschijnlijk heb je zo iets:
code:
1
2
3
4
5
6
7
8
9
10
Do while NOT rs.EOF
   Response.Write("<tr>")
    Response.Write("<td>v1</td>")
    Response.Write("<td>" & rs(0) & "</td>")
    Response.Write("<td>v24</td>")
    Response.Write("<td>" & rs(23) & "</td>")
    Response.Write("<td>v3</td>")
    Response.Write("<td>" & rs(2) & "</td>")
   Response.Write("</tr>")
rs.movenext

Probeer dat eens om te zetten naar:
code:
1
2
3
4
5
6
7
8
9
10
Do while NOT rs.EOF
   Response.Write("<tr>")
    Response.Write("<td>v1</td>")
    Response.Write("<td>" & rs("v1") & "</td>")
    Response.Write("<td>v2</td>")
    Response.Write("<td>" & rs("v2") & "</td>")
    Response.Write("<td>v3</td>")
    Response.Write("<td>" & rs("v3") & "</td>")
   Response.Write("</tr>")
rs.movenext

Of met een for next lusje :P
code:
1
2
3
4
5
6
7
8
9
10
Do while NOT rs.EOF
   Response.Write("<tr>")
   For i = 1 to 24
    Response.Write("<td>v" & i & "</td>")
   Next
   For i = 1 to 24
    Response.Write("<td>" & rs("v" & i) & "</td>")
   Next
Response.Write("</tr>")
rs.movenext

B.T.W. Misschien een boek / beter boek kopen? Dit is toch wel basis kennis................

Verwijderd

Active Server Page 2.0 Unleashed, echt een aanrader. Van Sams uiteraard :)

Verwijderd

Topicstarter
Op dinsdag 02 april 2002 16:34 schreef vanDee het volgende:
B.T.W. Misschien een boek / beter boek kopen? Dit is toch wel basis kennis................
Wat jij laat zien is inderdaad basis kennis, en dat snap ik allemaal ook wel. Blijkbaar komt het alleen niet over dat ik die volgorde al in de recordset goed wil hebben, omdat er een willekeurige tabel uitgelezen moet worden. Het moet niet belangrijk zijn om te weten welke tabel er uitgelezen wordt, of welke velden daarin aanwezig zijn dan wel de volgorde van deze velden. (ik maak namelijk een 'utility' waarbij het niet uitmaakt welk database er wordt uitgelezen)

Verwijderd

Dan mot je SELECT v1,v2,v3,v4,enz FROM [xxx] doen en dan met een for next met het aantal v1,v2,v3,enz en dan die rs(0), rs(1), enz laten zien.

Je kan niet zomaar iets selecteren en verwachten van het systeem dat het automatisch sorteerd zo als jij het verwacht! Je moet zelf op opgeven hoe.


Bij de wee:
Active Server Page 2.0 Unleashed
Goed boek! (met preview van ASP3!)

  • Goodielover
  • Registratie: November 2001
  • Laatst online: 18-08 11:34

Goodielover

Only The Best is Good Enough.

Kan je uitleggen hoe je nu de kopjes boven de kolommen bepaalt?
Mogelijk dat je wat met die uitvoer kan voor het anders ordenen van de velden.

Verwijderd

Dump anders de code es, dan kunnen we wat gerichtere (is dat een goed woord?) tips geven.

  • drm
  • Registratie: Februari 2001
  • Laatst online: 09-06-2025

drm

f0pc0dert

Lietsj:
Ten eerste: Volgens mij wil ik dit soort reacties helemaal niet zien |:(
:D logisch :X
Ten tweede: Ik ben niet degene die de database ontworpen heeft
Kom op man, 't enige wat ik doe probeer is je nieuwsgierig te maken voor een ontwerp wat wel goed is, en als je daarin niet geinteresseerd bent, mij best. Je hoeft je niet aangevallen te voelen, want dat was helemaal mijn intentie niet.

Als je dat wel voelt, excuus :)
</offtopic>

Music is the pleasure the human mind experiences from counting without being aware that it is counting
~ Gottfried Leibniz


Verwijderd

Topicstarter
Waar het uiteindelijk op neer komt is dat alles geheel variabel is.
Het moet dus niet uitmaken hoe de velden (kolommen heten), en tuurlijk moet het dan wel mogelijk zijn dat de query bij het uitvoeren zelf kijkt hoe de kolommen heten en aan de hand daarvan de volgorde bepaald. (alfabetisch dus)

Het maakt niet uit of ik de code hier plaats, want wat hiervoor allemaal gezegd is dat is alles wat erover te weten valt.

Anders moet ik het maar oplossen door eerst de recordset (array met de gegevens) d.m.v. een functie op volgorde te zetten.

offtopic:
drm
I know, maar loze opmerkingen zijn nou eenmaal nutteloos.. Hoewel ik ze zelf ook heel af en toe plaats >:)

  • drm
  • Registratie: Februari 2001
  • Laatst online: 09-06-2025

drm

f0pc0dert

Lietsj:
drm
I know, maar loze opmerkingen zijn nou eenmaal nutteloos.. Hoewel ik ze zelf ook heel af en toe plaats >:)
loze opmerkingen wel ja :Z ;)

Music is the pleasure the human mind experiences from counting without being aware that it is counting
~ Gottfried Leibniz


  • Goodielover
  • Registratie: November 2001
  • Laatst online: 18-08 11:34

Goodielover

Only The Best is Good Enough.

Als je niet statements krijgt als
select * from ....
zou je ook een mini parsertje kunnenschrijven en dan het statement omvormen en dan pas uitvoeren.
Is wel veel werk, maar dan heb je ook wat
Pagina: 1