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


Sortera ett RecordSet

Postades av 2004-03-11 16:51:24 - Johannes Lundgren, i forum visual basic - allmänt, Tråden har 2 Kommentarer och lästs av 681 personer

Hej!

Jag vill sortera ett RecordSet. Det är ju inte så svårt om man använder funktionen RecordSet.Sort. Men den funktionen är inte så bra på att sortera stigande tal. Mitt RecordSet ser ut så här, när det är sorterat:

M10
M12
M6
M8

Jag vill ju förstås att det ska se ut så här:

M6
M8
M10
M12

Har någon en funktion som fixar det?

Tack på förhand!
// Johannes


Svara

Sv: Sortera ett RecordSet

Postades av 2004-03-11 22:12:21 - Per Hultqvist

Johannes,

Att sortera alfanumeriskt är enkelt, att sortera numeriskt likaså. Men det finns ett antal varianter där det inte fungerar så som vi programmerare (och framförallt användarna) vill. Ditt exempel är ett av dom. Ett ännu enklare exempel är när numeriska värden är sparade i en databas som strängvärden där sorteringen blir :

"1"
"10"
"100"
"2"
"3"
...

Jag har precis nyligen bråkat med ett liknande problem, en produktkod som bestod av en eller flera bokstäver samt ett löpnummer som räknas upp för varje post som har samma produktkod.

I mitt fall valde jag i databasen att spara detta som två kolumner (Code och Number ) även om det för användaren egentligen alltid visas som ett värde. Detta gör att jag i mina SELECT-satser eller Stored Procedures alltid kan sortera först på bokstavskoden och sedan på det numeriska värdet (ORDER BY Code,Number) för att få avsedd effekt.

I mitt fall vill jag dessutom högerjustera siffervärdena och fylla ut med så många nollor som behövs, dvs jag visar M1...M9 men så fort post nummer 10 lagras med produktkoden "M" så ville jag att dessa värden ska visas som : M01,...,M09,M10,..., M99 och så vidare.

Det kanske inte är exakt som du önskar i ditt fall, men jag slänger med SQL:en för detta i alla fall :

Tabellnamn : Task
Produktkod : Code (Varchar)
Produktnummer : Number (Int)
Kolumnalias : TaskNumber

SELECT ISNULL(Task.Code, '') + ISNULL(RIGHT('0000000000' + CONVERT(varchar, Task.Number), (SELECT Len(CONVERT(varchar, MAX(ISNULL(Task.Number, 0))))
FROM Task)), '') AS TaskNumber FROM Task

Denna SQL går säkert att optimera, så om någon har förslag på hur man kan göra detta smidigare så är jag tacksam.


Svara

Sv: Sortera ett RecordSet

Postades av 2004-03-15 11:54:19 - Johannes Lundgren

Jag provade ditt förslag, å det fungerade bra!

Tack för hjälpen!
// Johannes


Svara

Nyligen

  • 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
  • 16:14 Vem anlitar man egentligen när tak
  • 16:13 Vem anlitar man egentligen när tak
  • 11:52 Noen erfaring med uttak hos Mostbe
  • 11:51 Noen erfaring med uttak hos Mostbe

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 634
27 958
271 741
490
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