Announcement

Collapse
No announcement yet.

Zweiteilige SQL-Abfrage einer Tabelle sortieren

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Zweiteilige SQL-Abfrage einer Tabelle sortieren

    Hallo Forumsgemeinde,

    ich habe eine Tabelle, die ich auf folgende Weise in einem Ergebnis ausgelesen haben möchte:

    tabelle:
    Spalte 0: ID
    Spalte 1: Nummer (enthält Zahlen im Bereich 1-10)
    Spalte 2: Datum
    Spalte n: andere Daten

    Pseudo-SQL:
    SELECT * FROM tabelle WHERE Nummer = 1 ORDER BY Datum
    UNION
    SELECT * FROM tabelle WHERE Nummer <> 1 ORDER BY Datum

    Ich weiß, dass dieses Query nicht geht, aber das Ziel sollte sein:
    Es sollen erst alle Datensätze mit Nummer = 1 nach Datum sortiert angezeigt werden, danach alle Datensätze mit den anderen Nummern aber auch nach Datum sortiert. In etwa so:

    01, 10.12.2010
    01, 12.12.2010
    01, 23.12.2010
    01, 25.09.2011
    04, 01.09.2009
    06, 05.11.2009
    02, 01.12.2010
    etc.

    Habt Ihr eine Idee, wie man das mit einem SQL-Statement lösen kann?
    Wäre für jeden Denkanstoß dankbar!

    Gruß Johnny

  • #2
    Hallo,

    entweder so:
    [highlight=sql]
    SELECT 1 sort, tabelle .*
    FROM tabelle
    WHERE Nummer = 1
    UNION
    SELECT 2 sort, tabelle.*
    FROM tabelle
    WHERE Nummer <> 1
    ORDER BY Sort, Datum
    [/highlight]

    oder mit einem Case-Ausdruck im ORDER-BY:
    [highlight=sql]
    SELECT *
    FROM tabelle
    ORDER BY CASE Nummer
    when 1 then 1
    else 2
    end, Datum
    [/highlight]

    Gruß Falk
    Wenn du denkst du hast alle Bugs gefunden, dann ist das ein Bug in deiner Denksoftware.

    Quellcode ohne ein Mindestmaß an Formatierung sehe ich mir nicht an! Ich leiste keinen Privatsupport per Mail oder PN!

    Comment


    • #3
      Verdammt verdammt, da wär ich nicht drauf gekommen das ist eine wirklich gute Idee^.

      Funktioniert CASE in der ORDER BY Klausel? Interessant

      Comment


      • #4
        Hallo,
        Originally posted by fanderlf View Post
        ...Funktioniert CASE in der ORDER BY Klausel? Interessant
        CASE ist zwar ein ausgesprochen komplexer, aber es ist eben "nur" ein Operator und sollte deshalb problemlos überall dort funktionieren, wo Ausdrücke zulässig sind.

        Gruß Falk
        Wenn du denkst du hast alle Bugs gefunden, dann ist das ein Bug in deiner Denksoftware.

        Quellcode ohne ein Mindestmaß an Formatierung sehe ich mir nicht an! Ich leiste keinen Privatsupport per Mail oder PN!

        Comment


        • #5
          Einwandfrei, danke!
          Die erste Version ist für mich okay

          Gruß Johnny

          Comment

          Working...
          X