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


SQL Sortering

Postades av 2001-05-11 12:41:00 - Mikael Kratz, i forum databaser, Tråden har 10 Kommentarer och lästs av 1002 personer

Går det via ett SQL-uttryck att sortera ett textfält där texten är nummer

Min data ser så här i ett text fält:

0_
3_
5_
13_
11_

Vid kommandot "ORDER BY" blir resultatet:

0_
11_
13_
3_
5_

Jag vill få "texten" att sorteras som nummer alltså:

0_
3_
5_
11_
13_

Finns det något motvarande SQL som VB:s Val kommando ?


Svara

Sv: SQL Sortering

Postades av 2001-05-12 11:34:00 - Christoffer Hedgate

Jag föreslår nog att när du lagrar datan även lagrar du samtidigt en kolumn med siffrorna i, så att du sedan kan köra ORDER BY på den. På så sätt tjänar du väl även lite prestanda. Annars kan du göra en beräknad kolumn som kollar vilka siffror som står i strängen, och köra ORDEWR BY på den. Men då måste du nog skriva en egen funktion för detta, och det kräver ju SQL Server 2000, för jag kan inte komma på någon funktion som gör det åt dig.


Svara

Sv: SQL Sortering

Postades av 2001-05-12 13:10:00 - Leif Parmlind

Bäst hade det varit om man kunnat använda nåt liknande Val() funktionen.

Prova med något liknande detta Order by Int(Mid(Faltnamn,1,Instr(Faltnamn,'_')-1))

Syntaxen får du rätta till själv men iden kanske kan användas.



Leif P


Svara

Sv: SQL Sortering

Postades av 2001-05-12 14:07:00 - Sven Åke Persson

hej
Kan nämna en metod som jag har avändt
Lägger in en dummy Listbox Visible = False
Sorted = True

Sen skippar jag ORDER BY läser istället in nummern
i ListBoxen och plockar därifrån

rec.MoveFirst

For i = 0 To rec.RecordCount - 1
resultat = rec.fields("Fält")
DummyList.AddItem "0" & CStr(resultat)
rec.MoveNext
next ' i

Också ett sätt
mvh
Sven



Svara

Sv: SQL Sortering

Postades av 2001-05-12 17:37:00 - Johan Djupmarker

Gäller detta Access, SQL-Server eller någon annan databas?

/Johan


Svara

Sv: SQL Sortering

Postades av 2001-05-13 11:22:00 - Christoffer Hedgate

Jo, den skulle kunna fungera, men fortfarande anser jag att sorteringsvärdena borde ligga i en egen kolumn. Att göra den beräkningen på varje rad i en tabell för att sortera den, det lär ta tid.


Svara

Sv: SQL Sortering

Postades av 2001-05-13 12:08:00 - Sven Åke Persson

Hej
Om du på något vis kan trycka ditt en 0 (nolla)
framför varje tal så komme sorteringen att bli Ok

mvh
Sven


Svara

Sv: SQL Sortering

Postades av 2001-05-14 14:34:00 - Leif Parmlind

'** Jag testade lite och detta verkar funka bra i Access i alla fall:
Sub Test()
Dim rs As ADODB.Recordset
Dim conn As New ADODB.Connection
conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=C:\Temp\db1.mdb"
Set rs = conn.Execute("Select test from Table1 Order by Len(Test), Left(Test,InStr(Test,'_')-1)")

While Not rs.EOF
Debug.Print rs("Test")
rs.MoveNext
Wend
Set rs=Nothing
Set conn=Nothing
End sub

Har du fått det att funka?
\Leif P


Svara

Sv: SQL Sortering

Postades av 2001-05-14 14:44:00 - Mikael Kratz

Tackar för förslagen till lösning!

Jag har provat lite olika alternativ för lösning av problemet. Då det gäller datat som ska sorteras kan det i bland uppgå till över 10.000 poster och det snabbaste sättet var faktiskt att skapa ett nytt fält i databasen där motsvarande nummer ligger. Hastigheten ökade nästan med 60% i jämförelse mot att programmässigt öppna ett record med tester på varje post.

/Micke


Svara

Sv: SQL Sortering

Postades av 2001-05-14 17:34:00 - Christoffer Hedgate

Självklart går det fortare med ytterligare ett fält. Lägg ett index där med så går det ännu fortare. Om du ofta använder denna sortering är nog ett klustrat index på (den nya) sifferkolumnen att rekommendera, men för att vara säker måste man naturligtvis veta mer om databasen.


Svara

Sv: SQL Sortering

Postades av 2001-05-14 19:02:00 - Leif Parmlind

Håller helt med när det gäller så pass stora tabeller.

Min ide tog jag från ett av mina första VB program en födelsedagslista som håller reda på när mina vänner och bekanta fyller år. En sån tabell blir ju aldrig särskillt stor så där gick det snabbt så det dög.

\Leif P


Svara

Nyligen

  • 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
  • 16:36 Allt du behöver veta om keramiskt
  • 16:14 Vem anlitar man egentligen när tak

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 705
27 958
271 751
766
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