Dieses Blog durchsuchen

Freitag, 19. Oktober 2018

Sätze verdoppeln bzw. vervielfältigen mit Kriterien

Habe wieder mal eine interessante Anfrage bekommen, die recht einfach umsetzbar war:
Es müssen einige Sätze einer Tabelle im Zuge eines SELECTs verdoppelt, einige jedoch verdreifacht werden. Abhängig von dem Wert einer Spalte in der Basistabelle.

    SELECT A.*
      FROM Basistabelle A
 LEFT JOIN (values (1), (2), (3)) X(valueID)
        ON A.CODE = 3
 LEFT JOIN (values (1), (2), (3)) Y(valueID)
        ON A.CODE != 3
       AND Y.valueID <= 2


Der erste LEFT JOIN ist für die SatzverDREIfachung zuständig. Nur Sätze mit dem Kriterium "A.CODE = 3" werden verdreifacht.
Alle anderen Sätze - also "A.CODE != 3" werden nur verDOPPELT - ("Y.valueID <= 2").
Natürlich könnte man beim zweiten Join auch einfach weniger Werte in die Tabelle Y schreiben. Diese Lösung dient nur zur Veranschaulichung.

Keine Kommentare:

Kommentar veröffentlichen