mafihe 0 Geschrieben vor 3 Stunden Melden Geschrieben vor 3 Stunden Guten Morgen, ich benötige ein SQL-Statement, wo ich leider aufgrund der Datenlage momentan nicht genau weiß, wie ich es lösen soll. In T2.F2 sind Mappingwerte für Werte aus T1.F1 enthalten. Falls T1.F1 NICHT in T2.F1 enthalten ist, soll immer T2.F2 für T2.F1='#GLOBAL#' genommen werden. Falls T1.F1 in T2.F1 enthalten ist, soll T2.F2 für T2.F1=T1.F1 genommen werden. T1 T2 Beispiele T1.F1 = 'variant' -> T2.F2 für T2.F1='#GLOBAL#' (weil 'variant' nicht in T2.F1 enthalten ist) T1.F1 = 'var-k37' -> T2.F2 für T2.F1 = 'var-k37' Bitte nicht über den Inhalt von T2 nachdenken, hier können unterschiedliche Werte stehen, ich hoffe, das Prinzip ist trotzdem klar. Wie könnte ein entsprechendes Statement aussehen? Vielen Dank für jeden Hinweis. Gruß Marco
MDD 13 Geschrieben vor 2 Stunden Melden Geschrieben vor 2 Stunden Hallo Marco, das wäre mit einem OUTER Join zu lösen. SELECT COALESCE(T2.F2, '#GLOBAL#') FROM T1 LEFT OUTER JOIN T2 on T1.F1 = T2.F1 Falls aber das Schlüsselfeld in T2.F1 doch vorhanden ist aber kein Wert (NULL) in F2 würde ebenfalls #GLOBAL# ausgewiesen werden. Dieser Fall ist in obigen Statement nicht abgefangen und müsste gegebenenfalls entsprechend behandelt werden. Gruß MDD
Empfohlene Beiträge
Erstelle ein Benutzerkonto oder melde dich an, um zu kommentieren
Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können
Benutzerkonto erstellen
Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!
Neues Benutzerkonto erstellenAnmelden
Du hast bereits ein Benutzerkonto? Melde dich hier an.
Jetzt anmelden