Join wenn eine Bedingung erfüllt ist

Kalito

Erfahrenes Mitglied
Hallo,

ich bekmme immer wieder Anfragen aus dem Haus, die sich nur um wenige Parameter von einander abweichen. Da ich nicht hunderte von SQL-Abfragen pflegen möchte, wollte ich eine etwas
generischere Abfrage schreiben. Ansich wäre das nicht das Problem, jedoch müsste ich einige Tabellen miteinander Joinen. Damit würde ich aber die von Haus aus schon große Tabellen zusammenführen, obwohl ich das ansich nicht müsste
Dabei hat sich die Frage gestellt, ob man die SQL nicht so bauen kann, dass ich nur einen Join ausführe, wenn eine Variable einen bestimmten Wert besitzt.

Ich stelle mir das wie folgt vor.
SQL:
SELECT *
FROM TABLE_A
IF @Variable = 1 THEN JOIN TABLE_B ON TABLE_A.id = TABLE_B.id

Im Internet habe ich nur den "LEFT JOIN"-Befehl gefunden, daber das hilft mir nicht so recht.

das ganze mache ich mit einer DB2-Datenbank.

Dank im Vorraus für eure Tipps.
 
So flexibel ist SQL im Normalfall nicht.
Du kannst die dein SQL aber mit einer Programmiersprache zusammensetzen. Kenn db2 Stored Procedures oder User Functions oder so was?
Bei Oracle würde ich in PL/SQL eine Function schreiben, die ein Recordset als Antwort hat.
Leider kenne ich DB2 nicht und weiss darum nicht, was für Möglichkeiten du dort hast.

Mit was wertest du das Resultat aus?
 
Das dachte ich mir schon.
Werde daher wohl ein Formular mit HTML und PHP bauen, was mir als Ergebnis das SQL-Statement ausspuckt, welches ich dann ausführen kann. Stored Procedures werde ich mir aber auch mal anschauen.
Danke
 

Neue Beiträge

Zurück