starmann
Goto Top

SQL von rechts nach links Sortieren

Hallo,
kann mir bei der Aufgabe Jemand helfen.

2017-07-02_204246

habe bis jetzt
SELECT 
    we.NAME,
    re.WKN,
    re.RENTETYP,
    re.ZINSKUPON,
    re.RATING
from RENTE re
    join WERTPAPIER we
    on re.WKN = we.WKN
order by  re.RATING asc
;

Wie bekomme ich es nun hin das "order by re.RATING asc" von rechts nach links list?

ist eine Orical DB

Content-Key: 342264

Url: https://administrator.de/contentid/342264

Printed on: April 24, 2024 at 03:04 o'clock

Member: juhu01
juhu01 Jul 02, 2017 at 20:34:12 (UTC)
Goto Top
variante 1 order by substring(re.RATING,3,1), substring(re.RATING,2,1),substring(re.RATING,1,1)
variante 2 order by FIND_IN_SET(re.RATING, "AAA","BBB","XBB","CCC","D" );
Achtung! DB-Version abhängig.

variante 3 SELECT DECODE ( myrating, 'AAA', 1, 'XBB', 2, 'CCC', 3) AS sort_order ) ORDER BY sort_order;
nicht vergessen den join auf deine Tabellen face-wink re.Rating = myraiting

Sorry die 3 variante kann ich leider z.Z. nicht ausprobieren.
lg
Member: em-pie
em-pie Jul 02, 2017 at 20:34:35 (UTC)
Goto Top
Moin,

mit etwas Grübeln sollte dir zumindest eine Variante einfallen, die deinen String mittels SUBSTR() zerpflückt und via CONCAT() wieder in umgekehrter Reihenfolge zusammenbaut....

Rest solltest du in deiner Hausaufgabe selbst hinbekommen...

Andere Möglichkeiten fallen mir jetzt nicht ein, was aber definitiv nichts heißen mag. von daher warte hier einfach mal ab.

Gruß
em-pie
Member: Biber
Biber Jul 02, 2017 updated at 21:11:56 (UTC)
Goto Top
Moin StarMann,

dein SELECT kann so bleiben.
Das ORDER BY mit DECODE wie schon oben angedeutet.
... ORDER BY Decode( re.rating
                              , 'AAA'. 1  
                              , 'BBB', 2  
                              ,' XBB', 3  
                              , 'CCC', 4  
                             , 42)


Grüße
Biber