Troll19: SQL: Attribute innerhalb einer Zeile sortieren

Beitrag lesen

Hallo, zunächst folgendes: Aus einem anderen Beitrag weiß ich, dass mein Text vermutlich ziemlich chaotisch aussieht. Das liegt daran, dass ich blind bin und mein Screenreader verrät mir leider nicht viel über die optische Darstellung. Vielleicht ist jemand so nett und formatiert die Geschichte ein bisschen? Vielen Dank.

beim Auslesen einiger Attribute aus einer Oracle-Datenbank ist von folgenden Voraussetzungen auszugehen: Es werden der Name und Vorname einer Person und die Namen seiner Haustiere ausgelesen und in einer Zeile ausgegeben. Die Person besitzt mindestens ein Haustier. Es können aber auch zwei sein. Die Namen der Haustiere sollen sortiert ausgegeben werden. Die Namen der Haustiere sollen bewusst nicht in eine eigene Tabelle ausgelagert werden. Mein Statement sieht dann folgendermaßen aus:

select t.name || '|' || t.vorname || '|' || 

       case 

       when t.tier2 is null or t.tier1 < t.tier2 then t.tier1 || '|' || t.tier2 || '|' 
       
       else t.tier2 || '|' || t.tier1 || '|' 

       end 

 from  tabelle t 

Gibt es eine vernünftige Lösung bei drei oder vier Tiernamen, ohne diese in eine eigene Tabelle auszulagern? Mit when wird es da wohl ziemlich komisch. Die Lösung sollte auch dann noch funktionieren, wenn es gar kein Haustier gibt. In der Ausgabe sollen alle Attribute mit ihrem Trennstrich auftauchen, also im Zweifelsfall "||||". Attribute mit dem Wert null sollen am Ende stehen.

Schönen Gruß Troll19