Avatar billede eksperten1 Nybegynder
15. oktober 2003 - 08:56 Der er 5 kommentarer og
1 løsning

Sortering af varchar indeholdende tal

Jeg forsøger at trække data ud af en tabel hvor jeg opbevarer en sideoversigt. Feltet jeg sorterer på ligger i et varchar felt idet nogle sider har et bogstav påklistret.
Eks.: 20, 21, 21 A, 21 B, 21 C (allesammen forskellige sider/records i tabellen)

Men hvordan kan jeg få SQL Server 2000 til at sortere disse korrekt idet jeg gerne så de aflevere den så de ser numerisk sorteret ud.

Sådan her kommer de nu :
1, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 2, 20...40 etc.

Kan det lade sig gøre ?

mvhE1
Avatar billede arne_v Ekspert
15. oktober 2003 - 09:30 #1
ORDER BY CAST(feltnavn AS INTEGER)
Avatar billede arne_v Ekspert
15. oktober 2003 - 09:32 #2
Sorterer ihvertfald tal.

Men jeg garanterer ikke for hvad den gør med bogstaver.
Avatar billede arne_v Ekspert
15. oktober 2003 - 09:40 #3
Hvis det giver problemer med bogstaver og du altod har 2 cifre eller blank, så
kan du bruge:


ORDER BY CAST(SUBSTRING(feltnavn,1,2) AS INTEGER)
Avatar billede arne_v Ekspert
15. oktober 2003 - 09:46 #4
Hvis de alle har tal + mellerum + bnogstav kan du bruge:

ORDER BY CAST(SUBSTRING(feltnavn,1,CHARINDEX(' ',feltnavn)) AS INTEGER)
Avatar billede eksperten1 Nybegynder
15. oktober 2003 - 09:55 #5
>Hej Arne
Tak for dit svar, jeg brugte nu en anden metode "ORDER BY CAST(LEFT(pageno,3) AS INT)", den returnerer ihvertfald det samme, og idet der aldrig vil være andet end enten et tal eller et mellemrum i char(3) af pageno, så ser det ud til at fungere.

Tak for hjælpen alligevel.
Avatar billede arne_v Ekspert
15. oktober 2003 - 10:24 #6
LEFT er selvfølgelig smartere end SUBSTRING når nu det altid er med start
i position 1.
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview
Kategori
Computerworld tilbyder specialiserede kurser i database-management

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester