Ich arbeite mit einer Oracle 12-Datenbank, die Mainframe-Daten darstellt. Hier ist meine Frage.Oracle Join mit zwei möglichen Spalte Daten
Wir haben zwei Hierarchieebenen, "System" und "Prin". Stellen Sie sich sie als Staat und Grafschaft in den USA vor. Manchmal erstellt ein Client alles auf Systemebene, und alle untergeordneten Elemente beziehen sich immer auf die Systemkonfiguration. Andere Clients, die auf Prin-Ebene erstellt wurden, und die untergeordneten Prints müssen zuerst die PRIN-Level-Daten für die Konfiguration prüfen, wenn prin nicht in der Tabelle enthalten ist, dann wird standardmäßig die Konfiguration auf Systemebene verwendet. Ziemlich einfach.
Hier ist, wo ich den Tisch nicht zur Arbeit kommen kann. Ein einzelner Client kann einige Systeme auf Systemebene und andere auf der Prinzebene erstellen. Wie kann ich dynamisch beitreten, wenn ich nicht sicher bin, welche Konfiguration der Client in diesem speziellen prin verwendet?
Beispiel:
WITH tbl as (
select 80 SYSTEM, 0 PRIN, 2 DATA from dual
union
select 80 , 1 , 3 from dual
union
select 80 , 2 , 4 from dual
)
jetzt, wenn ich befindet sich ein Element haben in System 80 prin 3 ... es wird die 0 prin Daten benötigen, da 0 das "System" config bezeichnet.
also wenn ich prin 1 habe, möchte ich Daten "3". wenn ich prin 2, data "4" habe, wenn ich prin 8 habe, will ich data "2" weil es keine prin 8 config built gibt.
Sehen Sie, wo ich versuche zu bekommen? So
wenn ich das tue
select *
from tbl t
inner join tbl2 tt on t.sys = tt.sys and prin = ?????
, wie soll ich sagen "wenn prin in Tabl gebaut wird, Verwendung prin, sonst prin default = 0"
Ich weiß, das ist eine schlecht angegeben Frage. Also bitte fragen Sie genauer und ich werde versuchen, schnell zu antworten. Dies betrifft mehrere Tabellen.
Willkommen an Bord.Ich denke, dass Sie besser Ihre Frage/Code unter Verwendung Ihres Zustand- und Grafschaftbeispiels als etwas wiederholen können, mit dem wir uns alle leicht verbinden können. Ich denke, dass Ihr Beispielcode zu viele domänenspezifische Informationen enthält, so dass wir ein gewisses Maß an Wissen über Ihr spezielles System und Ihre Branche benötigen. – Caltor