Folgende Abfrage zeigt, dass select *
kombiniert mit connect by
und left join
nicht alle Spalten, sondern nur Spalten in diesen Bedingungen verwendet. Dieses Verhalten war nützlich für mich, da select *
in Release nicht verwendet werden sollte, ist es nützlich, Daten anzufordern.Oracle select asterisk verbinden durch Join sql-92 Kombination
with t1 as (
select 1 id, 0 parent, 'ROOT' name from dual
union all
select 2 id, 1 parent, 'CHILD-1' name from dual
union all
select 3 id, 1 parent, 'CHILD-2' name from dual
), t2 as (
select 1 t1id, 'node' special from dual
)
select * from t1
left join t2 on t2.t1id=t1.id
start with id = 2
connect by prior parent = id;
während andere Anfragen gibt alle Spalten
select * from t1
start with id = 2
connect by prior parent = id;
select * from t1
left join t2 on t2.t1id=t1.id;
I Dokumentation nicht auf dieser Funktionalität finden konnte, gibt es eine?
SELECT t1 JOIN. *, T2. * 'Werke.Keine Ahnung, warum 'SELECT *' nicht funktioniert. – MT0
und das Hinzufügen von 'WHERE Name IS NOT NULL UND (Spezial IS NULL ODER Spezial IS NOT NULL)' bedeutet dann, dass diese Spalten in der 'SELECT *' erscheinen. – MT0