11. februar 2010 - 12:17Der er
5 kommentarer og 1 løsning
Sortere varchar som decimal
Hej eksperter,
Jeg har et felt i databasen af typen varchar som kun indeholder tal af typen "3,5" "10,5" "64,2" osv osv. (uden "" self). Når jeg sorterer efter dette felt bliver det (af gode grunde) sorteret som var det en streng. Dette ønsker jeg at lave om. Kan jeg caste varchar til decimal under sorteringen? Har prøvet flg:
SELECT Afkast_1aar FROM Afdelinger ORDER BY CAST(Afkast_1aar AS DECIMAL(13, 2)) DESC
SELECT Afkast_1aar FROM Afdelinger WHERE isNumeric( Afkast_1aar)<> 0 ORDER BY CONVERT(DECIMAL(13, 2), Afkast_1aar) DESC
måske? jeg burde selvfølgelig teste det selv, men har ikke lige en sql server i nærheden:) men du skal nok blot undgå at convertere de kolonner der ikke kan.. måske skal der også tjekkes for null is isNumeric ikke er nok.
Problemet er bare at jeg ikke kan udelukke de rækker hvor der eksempelvis optræder et NULL i netop dette felt. Rækken indeholder jo en masse andet brugbar information.
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.