webForumDet fria alternativet

SQL-Fråga ORDER BY?

8 svar · 358 visningar · startad av Gunnar_B

Gunnar_BMedlem sedan nov. 200528 inlägg
#1

Vet inte om detta går att göra i direkt i SQL frågan.. jag använder ASP och Access iallafall.

Det jag vill göra är att sortera två olika fält.

Vi döper dem till Fält1 och Fält2

ID  Fält1   Fält2
---------------
1   Kalle   Ulla
2   Kalle   Anders
3   Kalle   Ivan
4   Pelle   Olle
5   Kalle   Yngve
6   Berta   Leif

Jag vill sortera "ORDER BY fält2 ASC" Men om Fält1 innehåller något annat än "Kalle" ska det fältet också räknas med i sorteringen..

Så i detta fall skulle sorteringen se ut så här

2   Kalle   Anders
6   Berta   Leif
3   Kalle   Ivan
4   Pelle   Olle
1   Kalle   Ulla
5   Kalle   Yngve

A, B, I, P, U, Y

Hur skriver jag i SQL frågan? om det ens går att göra?

@ndersMedlem sedan juni 200026 914 inlägg
#2

Flyttas från Databashanterare.

emissionMedlem sedan dec. 19996 095 inlägg
#3

Hmmm....prova med

ORDER BY iif(fält1='Kalle',fält1,''),fält2
Gunnar_BMedlem sedan nov. 200528 inlägg
#4

emission skrev:

Hmmm....prova med

ORDER BY iif(fält1='Kalle',fält1,''),fält2

Nej det blev inte riktigt rätt.. nu sorterar den alla "Kalle" kolumner efteråt..
så sorteringen blev:

6 Berta Leif
4 Pelle Olle
2 Kalle Anders
3 Kalle Ivan
1 Kalle Ulla
5 Kalle Yngve

@ndersMedlem sedan juni 200026 914 inlägg
#5

Byt '' mot något som kommer efter Kalle om man sorterar i bokstavsordning, t.ex. 'ööö'.

mvh

Gunnar_BMedlem sedan nov. 200528 inlägg
#6

@nders skrev:

Byt '' mot något som kommer efter Kalle om man sorterar i bokstavsordning, t.ex. 'ööö'.

mvh

Nej nu hamnar ju alla "kalle" sorteringar först. Jag är nog rätt kass på förklara :)

@ndersMedlem sedan juni 200026 914 inlägg
#7

Hmm, ja, du får nog prova att förklara igen. :)

LarsGMedlem sedan dec. 200012 465 inlägg
#8
ORDER BY iif(fält1 <> 'Kalle',fält1,fält2)
Gunnar_BMedlem sedan nov. 200528 inlägg
#9

Vi kan säga så här då :)

ID  Fält1   Fält2
---------------
1   0       47
2   0       31
3   0       69
4   39      22
5   0       12
6   78      56

Tänk er att man mergar Fält1 och Fält2 där Fält1 är noll när man ska sortera.

Så här:

ID  Fält1   Fält2
---------------
1   47       
2   31       
3   69       
4   39      22
5   12       
6   78      56

Och sedan sorterar man fält1 :) I detta exempel representerade 0 = Kalle..

Genererad på 378 ms · cache AV · v20260730165559-full.f96bc7eb