I en föreningsmatrikel har jag bl.a. fälten: <code> Normalisera din tabellstruktur:Sortering av specifika värden
Efternamn
Förnamn
Ställning
Möjliga värden i fältet Ställning är: Ordförande, Vice ordförande, Ledamot, Ersättare (förutom null-värde).
Det vore praktiskt att kunna sortera styrelseledamöternas namn, så att ordningen Ordförande, Vice ordförande, Ledamot, Ersättare kunde upprätthållas,
Typ:
Svensson, Gerd, Ordförande
Eriksson, David, Vice ordförande
Nyquist, Sonja, Ledamot
(...)
Andersson, Pär, Ersättare
etc
Den enda ordning jag lyckas producera är alfabetisk/numerisk, men alltså inte i en oregelbunden ordning.
Tack!
/AnnikaSv: Sortering av specifika värden
order by
iif(Ställning = 'Ordförande',1,
iif(Ställning = 'Vice ordförande',2,
iif(Ställning = 'Ledamot',3,
iif(Ställning = 'Ersättare',4,5))))
</code>Sv: Sortering av specifika värden
Table: Persons
Field: PersonId int autoinc.
Field: PersonFirstName varchar(20)
Field: PersonLastName varchar(20)
Field: PersonRole FK Roles.RoleId
Table: Roles
Field: RoleId int autoinc.
Field: RoleName varchar(20)
Field: RoleSortOrder int
Query:
SELECT Person.PersonLastName, Person.PersonFirstName, Roles.RoleName
FROM Persons INNER JOIN Roles ON PersonRole = Roles.RoleId
ORDER BY Role.RoleSortOrder, Person.PersonLastName, Person.PersonFirstName
Exempeldata:
Persons
PersonId PersonFirstName PersonLastName PersonRole
87 Gerd Svensson 10
25 David Eriksson 7
35 Sonja Nyquist 25
Roles
RoleId, RoleName, RoleSortOrder
1 Ledamot 3
2 Ordförande 1
3 Vice ordförande 2