Andrea: Textfeld numerisch sortieren

Hallo

Ich habe in meiner Seite eine DB-Abfrage. Die sollte ich sortieren. Eigentlich
stehen da nur Zahlen drin, weil sie aber z.T. mit _ getrennt sind, ist das Feld
halt als Text definiert.
Kann mir bitte jemand sagen, ob das dann in meiner SQl-Abfrage numerisch sortieren
kann?

also, z.b 301_1, 301_2, 301_3...
jetzt kommts so: 301_1, 301_10, 301_2, ...

Gruss
Andrea

  1. Hi,

    vielleicht kannst du versuchen es nach
    LENGTH(feld), feld
    zu sortieren.
    Viel Glück!

    Rouven

  2. Servus

    also, z.b 301_1, 301_2, 301_3...
    jetzt kommts so: 301_1, 301_10, 301_2, ...

    Das kann ich mir nicht vorstellen. Durch den _ ist es und bleibt text und die logische Sortierung liegt im Filter deines Auges und die kann sql nicht kennen.
    Kannst Du aus 301_1 nicht 301_001, etc machen. Dann geht es vielleicht.

    bydey

  3. Hallo Andrea,

    ...,weil sie aber z.T. mit _ getrennt sind, ist das Feld
    halt als Text definiert.
    Kann mir bitte jemand sagen, ob das dann in meiner SQl-Abfrage numerisch sortieren
    kann?

    also, z.b 301_1, 301_2, 301_3...
    jetzt kommts so: 301_1, 301_10, 301_2, ...

    Da du der Rubrick ASP gepostet hast, nehme ich mal an, du arbeitest
    mit einer Access-DB. Da könnte folgende SQL-Abfrage das gewünschte Ergebnis liefern.

    SELECT CInt(Mid([feld1],1,InStr([feld1],"_")-1)) AS ersterTeil,
           CInt(Mid([feld1],InStr([feld1],"_")+1)) AS zweiterTeil,
           Feld1
    FROM Tabelle1
    ORDER BY CInt(Mid([feld1],1,InStr([feld1],"_")-1)),
             CInt(Mid([feld1],InStr([feld1],"_")+1));

    So ähnlich sollte es auch mit anderen DB bzw. SQL-Dialekten
    funktionieren.

    Viele Grüße
    Stefan