Oracle
 sql >> Datenbank >  >> RDS >> Oracle

Selbst bei Orakel mit Beispielen mitmachen

Dieses Oracle SQL-Tutorial konzentriert sich auf die Selbstverknüpfung in Oracle und bietet Syntax, Erklärungen und Beispiele

Ein Self-Join in Oracle ist ein Join der Oracle-Tabelle mit sich selbst. Wir können die Tabelle mehrmals verwenden. Jedes Vorkommen sollte einen Aliasnamen haben. Die Oracle-Datenbank verbindet während der Ausführung der Abfrage die Tabelle mit sich selbst und erzeugt das Ergebnis

General  syntax
select a.col1 ,b.col2  from mytable a,mytable b where <join condition> ;

Some Self Join in Oracle Beispiel

(1) Darstellung hierarchischer Daten

Wir haben eine Mitarbeitertabelle und möchten den Mitarbeiternamen und den Managernamen für alle Mitarbeiter angeben. Wir haben auch einen Präsidenten, der niemandem Bericht erstattet, um ihn in der Abfrage zu zeigen

Die folgende Abfrage mit Self Join mit Outer Join, um die Daten im gewünschten Format zu extrahieren

Hier sind einige der Punkte, die es wert sind, bei der obigen Abfrage beachtet zu werden

a. Für das mehrfache Vorkommen der Tabelle EMP

haben wir unterschiedliche Aliasnamen verwendet

b. Wir haben Left Outer Join verwendet, um auch die Präsidenteninformationen anzuzeigen

(2) Ein weiteres Beispiel zum Extrahieren der Mitarbeiterinformationen mit demselben Einstellungsdatum

(3) Wir können Self-Join verwenden, um die Zeilen in der Spalte zu transponieren zudem. Wir haben eine customer_bill-Tabelle, die mehrere Zeilen für die Zeilen für verschiedene Monate im Jahr hat, und wir möchten den Rechnungsbetrag für verschiedene Monate im Spaltenformat anzeigen

Desc customer_bill
--------------
Customer_id Varchar2(10)
bill_amount Number
bill_month Varchar2(10)

Tabellenabfrage

select Customer_id,bill_amount,bill_month
from customer_bill where
customer_id=1111;

Abfrage zum Transponieren von Zeilen in Spalten

select a.customer_id , b.bill_amount Jan-amount , 
c.bill_amount Feb-amount ,
c.bill_amount Mar-amount from customer_bill a ,customer_bill b,
customer_bill c where a.customer_id=b.customer_id ,
b.customer_id =c.customer_id 
and a.bill_month='JAN' 
and b.bill_month='FEB' and c.bill_month='MAR' 
and a.customer_id=1111;

In ähnlicher Weise können wir den Self Join in Oracle mehrfach verwenden. Bitte lassen Sie mich wissen, ob Ihnen dieser Beitrag gefällt

Verwandte Artikel
Oracle-SQL-Join:Was sind Oracle-Joins mit Beispielen (Sql-Joins), verschiedene Arten von Joins, Inner Join, Outer Join, Left Outer Join, Right Outer Join, Cross Join mit Beispielen
Oracle Join-Syntaxbeispiele :In diesem Beitrag finden Sie Beispiele für Oracle-Join-Syntax für Inner Join, Cross Join, Outer Join, Left Outer Join, Right Outer Join. Sort Merge Join, Cartesian Join, Hash Join zum besseren Verständnis
Nested Loop Join in Oracle 11g :Auf dieser Seite finden Sie alle Details zu Nested Loop Join in Oracle, wie sich Nested Loop Join in Oracle 11g unterscheidet, wie verschachtelt Loop Join funktioniert in Oracle
Hash Join in Oracle:In diesem Beitrag finden Sie eine detaillierte Beschreibung des Hash Join in Oracle, wie er sich von Nested Loop Join in Oracle unterscheidet