Oprettet ons. d. 15. februar 2006 kl. 11:06:46

nat
nat (15.561 point. Point ude: 40)

order by tal i rigtigt rækkerfølge

Hej eksperter,

Hvordan skriver jeg sql'en således at order by tal, returner den rigtige rækkefølge. Pt. får jeg denne rækkefølge:
1
10
11
12
2
3
4
5
6
7
8
9

Og den rækkefølge jeg vil have ser således ud:
1
2
3
4
5
6
7
8
9
10
11
12

Skrevet ons. d. 15. februar 2006 kl. 11:08:30| #1

senj
senj (30.248 point)
Hey
order by kollone asc

Skrevet ons. d. 15. februar 2006 kl. 11:13:35| #2

senj
senj (30.248 point)
SELECT kolonne1, kolonne2  FROM tabel1
WHERE X = Y
ORDER BY kolonne1 asc (asc er dog default, så det kan undlades, men viser man har tager stilling)

Hvis du skriver ORDER BY kolonne1 desc får du dem omvendt.

Skrevet ons. d. 15. februar 2006 kl. 11:32:43| #3

teepee
teepee (33.776 point)
Det virker som om at der sorteres efter noget tekst.
Prøv evt. order by to_number(kolonne) hvis du er sikker på at alle rækker indeholder tal.
Evt. konverter kolonnen til integer/number el.lign. så skulle den altså sortere rigtigt.

Skrevet ons. d. 15. februar 2006 kl. 11:39:41| #4

nat
nat (15.561 point)
Hmmm jeg har allerede order by tal asc - og tal indeholder ikke kun tal, men et enkelt bogstav foran; som dog er ens for alle! et A.

Skrevet ons. d. 15. februar 2006 kl. 12:16:23| #5

teepee
teepee (33.776 point)
Det er derfor at den tekst-sorterer.
Prøv evt

order by to_number(substr(kolonne, 2, length(kolonne)-1)

Skrevet ons. d. 15. februar 2006 kl. 12:16:48| #6

teepee
teepee (33.776 point)
Der mangler lige en slutparentes...

Skrevet ons. d. 15. februar 2006 kl. 12:19:34| #7

Men vær opmærksom på at hvis din string indeholder andre karaktere end tal (foruden det første hvis du bruger teepees kode), vil du få en fejl. Precis som teepee skrev tidligere.

Skrevet ons. d. 15. februar 2006 kl. 12:24:03| #8

senj
senj (30.248 point)
Prøv at kører denne her som eks.

SELECT TO_NUMBER(SUBSTR(TAL,2)) FROM (
SELECT 'A9' TAL FROM DUAL
UNION
SELECT 'A2' TAL FROM DUAL
UNION
SELECT 'A10' TAL FROM DUAL
UNION
SELECT 'A317' TAL FROM DUAL)
ORDER BY 1

Skrevet ons. d. 15. februar 2006 kl. 13:00:01| #9

nat
nat (15.561 point)
teepee løsning hjalp :) Tak.

Skriv et indlæg




Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] [img]link til billede[/img]
Web- og emailadresser omdannes automatisk til links

Log ind

   

   

Seneste spørgsmål

Apps DBA-rådgivning, E-business Suite.

Oprettet den 15. januar 2012 kl. 20.20
steber giver 30 point for svar | Giv et svar »

Oracle query

Oprettet den 10. november 2011 kl. 11.51
diyar giver 60 point for svar | Giv et svar »

SQL: Select afd, Count(personer) group by - sammenlagte...

Oprettet den 12. september 2011 kl. 17.45
prebenrunge giver 60 point for svar | Giv et svar »

Seneste guides

Installer win 7
Den gode bruger


   




Tips & Tricks fra PC World

Teaser billede

Her er fem sjove danske websider du skal kende

Trænger dine lattermuskler til en omgang fitness på dansk? Vi viser vej til fem websider fyldt med humor og vanvittig satire.


Anmeldelser fra PC World

Teaser billede

Test: Denne super-tablet er iPads hårdeste konkurrent

Eee Pad Transformer Prime er frygtindgydende med sin quadcore processor og evne til at trylle sig om til bærbar. Apple bør kigge i bagspejlet, for Asus' tablet-pc kommer buldrende - og gør det...


Seneste blogindlæg

Teaser billede

Tvangslukke spørgsmål: Hvad er den bedste løsning?

Hej Vi har mange åbne spørgsmål på Eksperten. Vi ville gerne tvangslukke dem - så et spørgsmål efter f.eks. 6 måneder lukkes. Men der er et par uklarheder som ville være gode at få lidt input til:...


Nyheder fra PC World

Teaser billede

Nu kan du snart hente Windows 8

Den nye offentlige betaversion af Windows 8 er klar i denne måned.


Nyheder fra Computerworld

Teaser billede

Måske snart slut med Androids helt store problem

Android-platformen har længe været plaget af et særligt problem. Men måske er problemet nu ved at være elimineret.


Kurser
Samarbejdspartnere

Udgiver · © 2012 IDG Danmark A/S · Hørkær 18 · 2730 Herlev · Tlf.: 77 300 300 · Fax: 77 300 301 · Brug af personoplysninger