Fetstil Fetstil Kursiv Understrykning linje färgläggning tabellverk Punktlista Nummerlista Vänster Centrerat högerställt Utfyllt Länk Bild htmlmode
  • Forum & Blog
    • Forum - översikt
      • .Net
        • asp.net generellt
        • c#
        • vb.net
        • f#
        • silverlight
        • microsoft surface
        • visual studio .net
      • databaser
        • sql-server
        • databaser
        • access
        • mysql
      • mjukvara klient
        • datorer och komponenter
        • nätverk, lan/wan
        • operativsystem
        • programvaror
        • säkerhet, inställningar
        • windows server
        • allmänt
        • crystal reports
        • exchange/outlook
        • microsoft office
      • mjukvara server
        • active directory
        • biztalk
        • exchange
        • linux
        • sharepoint
        • webbservers
        • sql server
      • appar (win/mobil)
      • programspråk
        • c++
        • delphi
        • java
        • quick basic
        • visual basic
      • scripting
        • asp 3.0
        • flash actionscript
        • html css
        • javascript
        • php
        • regular expresssion
        • xml
      • spel och grafik
        • DirectX
        • Spel och grafik
      • ledning
        • Arkitektur
        • Systemutveckling
        • krav och test
        • projektledning
        • ledningsfrågor
      • vb-sektioner
        • activeX
        • windows api
        • elektronik
        • internet
        • komponenter
        • nätverk
        • operativsystem
      • övriga forum
        • arbete karriär
        • erbjuda uppdrag och tjänster
        • juridiska frågor
        • köp och sälj
        • matematik och fysik
        • intern information
        • skrivklåda
        • webb-operatörer
    • Posta inlägg i forumet
    • Chatta med andra
  • Konto
    • Medlemssida
    • Byta lösenord
    • Bli bonsumedlem
    • iMail
  • Material
    • Tips & tricks
    • Artiklar
    • Programarkiv
  • JOBB
  • Student
    • Studentlicenser
  • KONTAKT
    • Om pellesoft
    • Grundare
    • Kontakta oss
    • Annonsering
    • Partners
    • Felanmälan
  • Logga in

Hem / Forum översikt / inlägg

Posta nytt inlägg


Undring om sortering i SQL...

Postades av 2003-10-20 13:56:43 - Tommy Stenbäck, i forum asp - allmänt, Tråden har 16 Kommentarer och lästs av 729 personer

Hejsan,

Jag sitter och klurar lite på hur man skulle kunna lösa följande:

Om man har en tabell med två kolumner (Destination & Prefix).
I Destination står just destinationsnamn, och i Prefix står prefixet (telefoni) för denna destination.

Nu till problemet!
Jag vill att följande information listas som den står (sorterat på destination, prefix):

Antigua & Barbuda 1268
Antigua & Barbuda mobiles 1268404
Antigua & Barbuda mobiles 1268406
Antigua & Barbuda mobiles 1268409
Antigua & Barbuda mobiles 1268464
Antigua & Barbuda mobiles 1268480
Antigua & Barbuda mobiles 1268481
Antigua & Barbuda mobiles 1268686
Antigua & Barbuda mobiles 126872
Antigua & Barbuda mobiles 126873
Antigua & Barbuda mobiles 126893

Men om jag skulle köra en SQL-sträng som sorterar på först destination och sedan prefix, så skulle det bli följande (om jag inte tror fel):

Antigua & Barbuda 1268
Antigua & Barbuda mobiles 126872
Antigua & Barbuda mobiles 126873
Antigua & Barbuda mobiles 126893
Antigua & Barbuda mobiles 1268404
Antigua & Barbuda mobiles 1268406
Antigua & Barbuda mobiles 1268409
Antigua & Barbuda mobiles 1268464
Antigua & Barbuda mobiles 1268480
Antigua & Barbuda mobiles 1268481
Antigua & Barbuda mobiles 1268686

Eftersom 126893 är mindre än 1268404, så hamnar ju 126893 före rent logiskt...
Men hur ska jag göra om jag vill ha det som i det övre exemplet (12684XXX ligger ju faktiskt före 12689XXX)?

Det är säkert ganska enkelt, men jag har inte börjat bygga applikationen ännu...! :)
Jag vill ju gärna veta att det går att lösa innan jag lägger ner tid på det!

Tacksam för svar!
Tommy


Svara

Sv: Undring om sortering i SQL...

Postades av 2003-10-20 14:06:23 - Jonnie De Paul

vad kör du för databas?
kör du Access så kan du lägga till Order By Prefix DESC i anslutningen till tabellen...
tror det ska vara DESC, om det inte är det så kan du testa med ASC..

jag vet inte om Order By Prefix DESC funkar i anslutning till mySQL databas.. men jag kan ha fel.. har inte använt mySQL så mycket.

jag vet inte äns om det är detta du är ute efter, så jag kanske är helt ute och cyklar :)

mvh
//Jonnie


Svara

Sv: Undring om sortering i SQL...

Postades av 2003-10-20 14:28:22 - Tommy Stenbäck

Det kommer att bli en Access-db.

Dock så sorterar ASC resp. DESC i stigande eller fallande ordning.

I den eventuella applikationen, kommer det att vara varierande längd på prefixen som tillhör samma destination.
Men om man då tar dessa fyra:
123
1241
125
12678

...och sorterar ASC blir det:

123
125
1241
12678

...och DESC:

12678
1241
125
123

Men jag vill ha dom så här:
123
1241
125
12678

Så man kan se det som man skulle sortera 'från vänster' på prefix...
...hur nu detta ska gå till...

//Tommy


Svara

Sv: Undring om sortering i SQL...

Postades av 2003-10-20 14:38:17 - Andreas Hillqvist

Vilken fälttyp har prefix?


Svara

Sv: Undring om sortering i SQL...

Postades av 2003-10-20 14:42:40 - Christoffer Hedgate

Konvertera det till sträng och sortera på den.


Svara

Sv: Undring om sortering i SQL...

Postades av 2003-10-20 15:11:03 - Tommy Stenbäck

Andreas:
Fälttypen får nog bli tal (utan decimaler)...
...finns inte så mycket annat att välja på (förutom text)...!

//Tommy


Svara

Sv: Undring om sortering i SQL...

Postades av 2003-10-20 15:15:59 - Tommy Stenbäck

Christoffer:

Hur lägger jag in det i en sträng (är det en array du tänkte på)?
Och hur sorterar man den på det sätt som jag söker?

Ett exempel, please...! :)

Vet inte om det spelar nån' roll, men det kommer att bli åtskilliga tusen rader i databasen, och man ska kunna välja på att visa hela listan (jag tänkte på servern)...

//Tommy


Svara

Sv: Undring om sortering i SQL...

Postades av 2003-10-21 09:04:10 - Christoffer Hedgate

SELECT blablabla
FROM blablabla
ORDER BY destination ASC, CAST(prefix AS varchar(10)) ASC


Svara

Sv: Undring om sortering i SQL...

Postades av 2003-10-21 11:58:35 - Tommy Stenbäck

Ett nytt kommando för mig...! :)

Kanske en dum fråga, men vad gör / hur fungerar CAST-biten egentligen??

//Tommy


Svara

Sv: Undring om sortering i SQL...

Postades av 2003-10-21 13:06:01 - Roger Gusthage

Om det är av vikt att kunna sortera

123
1241
125
12678

och inte i strikt nummerordning så antar jag att det finns en logisk anledning till detta. 123 är före 12441 som i sin tur är före 125. Det tycks som att de tre första positionerna betyder något speciellt i hela prefixet. Detta skulle jag tolka som att de tre första tecknen läggs i en egen kolumn och de två eller inga tecknet i slutet läggs i en egen kolumn. Jmf att lägga hela telefonnummret i en kolumn eller skilja på riktnummer och lokalnummer.

Gör du denna uppdelning får du även en högre normalisering på din databas. En kolumn skall vara atomär, dvs värdet skall endast stå för en sak.


Svara

Sv: Undring om sortering i SQL...

Postades av 2003-10-21 13:13:12 - Tommy Stenbäck

Problemet är att nummerlängden kan variera mellan 1 till 10 siffror...
I sådana fall skulle man behöva 10 kolumner i databasen bara för prefixen...
...kanske inte så bra lösning (men det skulle fungera!)... :)

Jag får underlag inom en vecka, så jag tänkte börja labba lite då...

//Tommy


Svara

Sv: Undring om sortering i SQL...

Postades av 2003-10-21 13:25:13 - Christoffer Hedgate

Det gör om ett värde från en datatyp till en annan?.. Inte speciellt avancerat. Eftersom strängar sorteras inbördes genom att jämföra tecknet längst till vänster, därefter nästa tecken osv så kommer sorteringen att bli den du vill.

Till Roger: Det frågan gäller här har väl egentligen inte med just de tre första tecknen att göra uatn snarare att han vill sortera tal som om de vore strängar.


Svara

Sv: Undring om sortering i SQL...

Postades av 2003-10-21 13:34:22 - Tommy Stenbäck

Tackar för svaret!
Jag ska börja testa så fort jag fått underlaget!
Hör av mig så fort jag vet hur det gått...!

M.v.h.
Tommy


Svara

Sv: Undring om sortering i SQL...

Postades av 2003-10-22 08:04:01 - Tommy Stenbäck

Jag har gjort en liten testdatabas i Access där jag lagt in de fyra exempel-prefixen i.
Sedan testkörde jag SQL-frågan i Access, men får följande felmeddelande:

Syntax error (missing operator) in query expression 'CAST(prefix AS varchar(10))'.

Frågan ser ut såhär:

SELECT * FROM banding ORDER BY dest ASC, CAST(prefix AS varchar(10)) ASC

När jag trycker 'OK' så markeras AS i queryn...
Är det nåt' jag missat??
(Helt klart har jag gjort nåt' fel...)

//Tommy


Svara

Sv: Undring om sortering i SQL...

Postades av 2003-10-22 09:45:39 - Hobil Haidari

varchar är nog inte den korrekta text-typen i access, det är text som gäller för längder upp till 255 tecken, därefter får man använda notes istället som är av binär typ


Svara

Sv: Undring om sortering i SQL...

Postades av 2003-10-22 09:56:36 - Andreas Hillqvist

Om du använder Access:

SELECT * FROM banding ORDER BY dest ASC, CStr(prefix) ASC

Annars kan du ju ändra datatypen för kolumnen till text. Bör funka för alla databaser.


Svara

Sv: Undring om sortering i SQL...

Postades av 2003-10-22 11:07:07 - Tommy Stenbäck

CStr(prefix) fungerade perfekt!!

Tack så mycket för hjälpen!!
Tommy


Svara

Nyligen

  • 08:28 Butiksskyltar: Hur upplever utbude
  • 22:31 Slappna av
  • 19:55 kick-off med fokus på hälsa?
  • 19:53 kick-off med fokus på hälsa?
  • 16:24 Föreslå en skönhetsklinik online
  • 16:23 Föreslå en skönhetsklinik online
  • 18:42 Hvor finder man håndlavede lamper
  • 18:41 Hvor finder man håndlavede lamper

Sidor

  • Hem
  • Bli bonusmedlem
  • Läs artiklar
  • Chatta med andra
  • Sök och erbjud jobb
  • Kontakta oss
  • Studentlicenser
  • Skriv en artikel

Statistik

Antal besökare:
Antal medlemmar:
Antal inlägg:
Online:
På chatten:
4 570 792
27 960
271 761
2 350
0

Kontakta oss

Frågor runt konsultation, rådgivning, uppdrag, rekrytering, annonsering och övriga ärenden. Ring: 0730-88 22 24 | pelle@pellesoft.se

© 1986-2013 PelleSoft AB. Last Build 4.1.7169.18070 (2019-08-18 10:02:21) 4.0.30319.42000
  • Om
  • Kontakta
  • Regler
  • Cookies