Sortierung nach bestimmten Wert



  • Hallo,
    ich arbeite mit SQL-Server 2005 und suche nun eine möglichkeit, direkt in einer SQL-Abfrage Datensätze so zu sortieren, dass zuerst diejenigen angezeigt werden, die in einer Spalte einen bestimmten wert haben, und dann die anderen. Hier ein Beispiel:

    Datensätze
    1 XX
    2 YY
    3 ZZ
    4 YY
    5 BB
    6 AA
    7 YY
    8 CC

    Ich möchte das Ergebniss so haben (z.B. für YY):
    2 YY
    4 YY
    7 YY
    1 XX
    3 ZZ
    5 BB
    6 AA
    8 CC

    Gibts da ne Möglichkeit?



  • Füge doch noch eine dritte Spalte hinzu, die Du entdprechend der Zeileninhalte bewertest und danach sortierst. Also beispielsweise eine int-Spalte, die bei 'YY' 0 ausgibt, bei anderen 1 und denn nach dieser Spalte sorieren.



  • So ene Möglichkeit gibt es nicht.
    DU könntest 2 Querys mit UNION machen aber keine gute Lösung.
    Auch könntest du eine CASE machen.

    WENN YY dann eine weitere Spalte und mit 1 beginnen. Danach sortierst du nach dieser Spalte.
    SChau dir in TSQL CASE und IF an.



  • Kennt das Teil decode?

    select * from tabelle order by 
    decode(feld, 'YY', 1, 0)
    

Anmelden zum Antworten