sebbel: ORDER BY -> Spez. Eintrag immer zuerst

Hallo,

gibt es ein ORDER BY Statement, indem ich ganz gewöhnlich alphabetisch sortiere aber trotzdem einen speziellen Eintrag zuerst angezeigt zu bekommen?

Beispiel:

Tabelle Familie:

ID Name
1 Müller
2 Maier
3 Becker
4 Schneider
5 Heinz

alphabetisch wäre es Becker, Heinz, Maier, Müller, Schneider.
Ich brauche aber Maier, Becker, Heinz, Müller, Schneider.

Jemand eine Ahnung wie ich das Kriterium Maier da rein bringe?

Danke

Sebastian

  1. Hi,

    gibt es ein ORDER BY Statement, indem ich ganz gewöhnlich alphabetisch sortiere aber trotzdem einen speziellen Eintrag zuerst angezeigt zu bekommen?

    jedes mir bekannte DBMS kann nach mehreren Kriterien sortieren. Welches DBMS auch immer Du also verwenden magst, prüfe, ob dieses eine Form von IF oder DECODE o.ä. kennt.

    Cheatah

    --
    X-Self-Code: sh:( fo:} ch:~ rl:° br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
    X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
    X-Will-Answer-Email: No
    X-Please-Search-Archive-First: Absolutely Yes
    1. jedes mir bekannte DBMS kann nach mehreren Kriterien sortieren.

      Das ist Klar: ORDER BY ID, Name ASC...

      Was ich aber brauche wäre

      ORDER BY Name ASC BUT SHOW 'Maier' FIRST

      1. hi,

        jedes mir bekannte DBMS kann nach mehreren Kriterien sortieren.

        Das ist Klar: ORDER BY ID, Name ASC...
        Was ich aber brauche wäre
        ORDER BY Name ASC BUT SHOW 'Maier' FIRST

        Schön, dann geh' doch jetzt bitte noch auf den Rest von Cheatahs Antwort ein - und dann bist du schon ganz nah an der Lösung.

        gruß,
        wahsaga

        --
        /voodoo.css:
        #GeorgeWBush { position:absolute; bottom:-6ft; }
        1. Schön, dann geh' doch jetzt bitte noch auf den Rest von Cheatahs Antwort ein - und dann bist du schon ganz nah an der Lösung.

          Bin ich das nicht?
          Was bringt mir DECODE(), Encryption and Compression Functions?
          Und wie ich das mit dem IF Statement realisieren könnte, entzieht sich leider meiner absoluten Vorstellung.

          Falls das schroff rüberkommt, soll nicht so sein.

          1. Hi,

            Und wie ich das mit dem IF Statement realisieren könnte, entzieht sich leider meiner absoluten Vorstellung.

            keine Ahnung welchen Gedanken Cheatah verfolgt, aber meine spontane Idee ist eine virtuelle Spalte anzulegen.
            SELECT <was jetzt auch schon da steht>,
                   <virtuelle Spalte> AS sortierspalte*
            FROM ...
            WHERE ...
            ORDER BY sortierspalte, name

            -> so, und genau bei der virtuellen Spalte kommt dein IF o.ä. ins Spiel: Wenn der Mensch Maier heißt, dann weise ihm einen Wert x zu, wenn er nicht Maier heißt gib ihm einen Wert y, der von ORDER BY standardmäßig hinter x einsortiert wird.

            MfG
            Rouven

            --
            -------------------
            ie:| fl:| br:> va:| ls:& fo:) rl:( n4:{ ss:) de:] js:| ch:? mo:} zu:|
          2. Huhu

            Und wie ich das mit dem IF Statement realisieren könnte, entzieht sich leider meiner absoluten Vorstellung.

            sowas in dieser Art stelle ich mir dabei vor:

            SELECT
             Name,
             IF(Name='DerChefOderEselDerZuerstGenanntWerdenSoll', 'AAAA', Name) as ordervalue

            ORDER BY
                   ordervalue ASC

            Viele Grüße

            lulu

            --
            bythewaythewebsuxgoofflineandenjoytheday
            1. Hi,

              SELECT
              Name,
              IF(Name='DerChefOderEselDerZuerstGenanntWerdenSoll', 'AAAA', Name) as ordervalue

              wozu der Umweg?

              Cheatah

              --
              X-Self-Code: sh:( fo:} ch:~ rl:° br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
              X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
              X-Will-Answer-Email: No
              X-Please-Search-Archive-First: Absolutely Yes
          3. Hi,

            Schön, dann geh' doch jetzt bitte noch auf den Rest von Cheatahs Antwort ein - und dann bist du schon ganz nah an der Lösung.
            Bin ich das nicht?

            auf den Rest? Also auf den Teil, auf den Du nicht eingegangen bist? Nein, auf den Teil bist Du nicht eingegangen.

            Was bringt mir DECODE(), Encryption and Compression Functions?

            Das DECODE, welches ich in der Reihe "IF oder DECODE o.ä." nannte, hat nichts mit Encryption oder Compression zu tun.

            Und wie ich das mit dem IF Statement realisieren könnte, entzieht sich leider meiner absoluten Vorstellung.

            Da wird Dir keiner bei helfen können, zumal Du uns immer noch nicht verraten hast, welches DBMS Du verwendest. Aufgrund Deines Ausschlusses von DECODE wird es vermutlich kein Oracle sein.

            Cheatah

            --
            X-Self-Code: sh:( fo:} ch:~ rl:° br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
            X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
            X-Will-Answer-Email: No
            X-Please-Search-Archive-First: Absolutely Yes
  2. yo,

    zuviele köche am werk. letztlich ist es so, wie Cheatah gesagt hat, eine IF Anweisung im SELECT und dann nach zwei spalten sortieren.

    SELECT namen, IF (namen = 'Maier', 0, 1) AS Sortierung
    FROM Familie
    ORDER BY Sortierung, namen

    Ilja

    1. yo,

      zuviele köche am werk. letztlich ist es so, wie Cheatah gesagt hat, eine IF Anweisung im SELECT und dann nach zwei spalten sortieren.

      SELECT namen, IF (namen = 'Maier', 0, 1) AS Sortierung
      FROM Familie
      ORDER BY Sortierung, namen

      Ilja

      Vielen Dank, wäre ich nie drauf gekommen.. vorallem weil ich immer in Spalten denke und nicht wusste, das man diese zu einer kombinieren kann..

      Auch an alle anderen Danke für die Mühe. :)