Avatar billede dm0108 Nybegynder
05. juni 2004 - 00:26 Der er 15 kommentarer og
2 løsninger

Problemer med sortering

jeg har et dataset som jeg sortere på nr med order by nr.
Det sortere og så fint, bortset fra at det lægger 10 11 12 osv ind efter 1.
det går ikker da jeg skal bruge en lige talrækker: 1.2.3.4.5.6.7.8.9.10.11 osv.

kan nogen hjælpe mig hurtigt
Avatar billede delphinarious Nybegynder
05. juni 2004 - 00:28 #1
Jep, det er formentligt fordi din database skal have feltet sat som et numerisk felt, og ikke som et tekst-felt. :-)

Er lidt svært at give et konkret eksempel, da jeg ikke ved hvilken db du bruger. :-)
Avatar billede arne_v Ekspert
05. juni 2004 - 00:29 #2
Forkert data type !

INTEGER giver 1 2 3 11 12 13

VARCHAR giver 1 11 12 13 2 3
Avatar billede delphinarious Nybegynder
05. juni 2004 - 00:29 #3
Hvis det fx. var i MySQL skulle feltet, der indeholdt værdien, der skulle sorteres efter, være et INT-felt. Hvor det lyder som om du nu har et Char-felt. :-)
Avatar billede skwat Praktikant
05. juni 2004 - 00:30 #4
select * from table order by convert(int, DitFelt)
Avatar billede delphinarious Nybegynder
05. juni 2004 - 00:30 #5
skwatt >> Den kendte jeg ikke. Virker det virkeligt?
Avatar billede skwat Praktikant
05. juni 2004 - 00:34 #6
Yep, denne verden er nem :)
Avatar billede arne_v Ekspert
05. juni 2004 - 00:34 #7
Ja - bortset fra at der lige skal byttes om på feltnavn og type
Avatar billede arne_v Ekspert
05. juni 2004 - 00:35 #8
Men medmindre der er gode grunde til at beholde den type så synes jeg stadig
at du skal ændre den
Avatar billede delphinarious Nybegynder
05. juni 2004 - 00:35 #9
Ok. Og med visse begrænsninger, kan jeg læse mig frem til i MySQL-manualen:

Cast Functions

The syntax of the CAST function is:



CAST(expression AS type)

or

CONVERT(expression,type)

Where type is one of:

·    BINARY

    ·    DATE

    ·    DATETIME

    ·    SIGNED {INTEGER}

    ·    TIME

    ·    UNSIGNED {INTEGER}

MySQL Reference Manual (C) 2002 MySQL AB
Avatar billede skwat Praktikant
05. juni 2004 - 00:36 #10
arne_v, kommer an på databasen CONVERT ( data_type [ ( length ) ] , expression [ , style ] )
Avatar billede skwat Praktikant
05. juni 2004 - 00:37 #11
for SQLserver
Avatar billede arne_v Ekspert
05. juni 2004 - 00:39 #12
Ah - lille detalje - dejligt med standardisering !  :-)
Avatar billede skwat Praktikant
05. juni 2004 - 00:41 #13
Jeg mener at man iflg. ANSI sql skal bruge cast, it CAST( exporessin as style)
Avatar billede dm0108 Nybegynder
05. juni 2004 - 02:30 #14
Darkey jeg holdt mig til din løsning som jo selfølgelig var den rigtige, hvorfor f.... tænkte jeg ikke selv på det
tak til de andre for deres indlæg
Avatar billede delphinarious Nybegynder
05. juni 2004 - 10:25 #15
Bare fjong du! Tak for points!
Avatar billede skwat Praktikant
05. juni 2004 - 20:52 #16
arne_v, på den anden side, findes der altid to standarter, den officielle, og microsofts egen :)
Avatar billede arne_v Ekspert
06. juni 2004 - 10:02 #17
:-)
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
Kurser inden for grundlæggende programmering

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