webForumDet fria alternativet

Egen sorteringsordning

ASP

4 svar · 248 visningar · startad av i-or

Medlem sedan nov. 2001294 inlägg
Frågan#1

Hej,

Kan man göra en sorteringsfunktion med helt egna villkor? Typ först ska alla "Per" komma, sedan "Anders" och sist "Stina". Om det går hur gör man? (Alltså inte alls alfabetisk ordning)

Tack på förhand

Medlem sedan aug. 20011 087 inlägg
#2

jadu det ända jag kan komma på är att du skapar en ny kolumn (t.ex ordning) i databasen och ger dom en siffra i den ordningen du vill ha dom o tar sedan

SELECT * FROM namn ORDER BY ordning

finns säkert MYCKET smartare allternativ men denna funkar ju aif :O)

jag vet ju inget om dina asp kunskaper men detta e ju bra för en nybörjare.

------------------
*brölar ljudligt*

Medlem sedan dec. 19995 874 inlägg
#3

Tja, det går ju faktiskt..

Om du exmpelvis har en array med hur sorteringen skall vara..

kanske "per", "anders", "lina"

sedan loopar du igenom arrayen.

och för varje loop gör du en förfrågan på namnet, som plockar ut alla rätta rader och trycker ner i en array.

alternativ två, som är lite mer dynamisk är att du helt enkelt går igenom hela recordsettet.

och för varje loop, så börjar du om från början av recordsettet. MEN
du kör med NOT IN i din selectsats, och alltså får du tillslut fram en sorterad lista som är helt osorterad, men sorterad på namn.
Du får givetvis kolla så att namnet är det samma, annars tar du rs.movenext.

lycka till!

------------------
Mvh
Patrik aka Brimba

Medlem sedan nov. 2001294 inlägg
#4

Skulle någon tänka sig att skriva en exempelkod åt mig, så jag har någonting att utgå ifrån? Jag är nämligen inte så haj vare sig på arrays eller SQL.

Tack på förhand

Medlem sedan dec. 200012 464 inlägg
#5

Med access

select * from ogrish
order by iif(namn='Per',0,
         iif(namn='Anders',1,
         iif(namn='Stina',3,2))),namn

Nu blir ordningen

per
anders
alla andra i bokstavsordning
stina

I sql

select * from ogrish
order by case namn 
  when 'Anders' then 0
  when 'Per' then 1
  when 'Stina' then 3
  else 2 end , namn

------------------
essentitia preter non sans multiplicandum

257 ms totalt · 4 externa anrop · v20260731065814-full.86ec41c2
129 ms — deklarationer (db)
0 ms — hämta statistik (cache)
124 ms — hämta tråd, inlägg och bilagor (db)
122 ms — ändringar (db)