11. februar 2008 - 19:11Der er
4 kommentarer og 1 løsning
Sortering af varchar felt.
Hej.
Jeg har en tabel, som indeholder postnumre for england. disse vil jeg gerne have sorteret via en sql funtion, så jeg får et resultset, hvor dataene er sortere som jeg gerne vil have dem.
Tabellen indeholder f.eks. EW14 B1 B11 B13 B19 B10 B2 B21 B22 EW1 EW30 osv.
Jeg vil gerne have dem ud i denne rækkefølge: B1 B2 B11 B13 B19 B10 B21 B22 EW1 EW14 EW30
Altså sortere "logisk" for brugerne Nogen der kan hjælpe mig med dette?
Du laver dig en struct (eller klasse) som implementerer IComparable<T> á la:
public struct PostalCode : IComparer<PostalCode> { ...
public int Compare(PostalCode x, PostalCode y) { int result = x._stringPart.CompareTo(y._stringPart);
if (result != 0) //Hvis strengene er 'lige' sorteres alfabetisk. return result; else //Ellers sorteres på den numeriske del return x._numericPart.CompareTo(y._numericPart); } }
Så skal du bare lave noget konstruktor halløj, som splitter dine strenge op i en streng-del og en numerisk del.
Men det blev til en noget avanveret SQL med en masse: PATINDEX('%0123456789%', POSTNUMMER) :)
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.