sql >> Database >  >> RDS >> Oracle

Zelf meedoen in orakel met voorbeelden

Deze Oracle SQL-tutorial richt zich op zelf-deelname in Oracle, en biedt syntaxis, uitleg, voorbeelden

Een self-join in Oracle is een join van Oracle Table aan zichzelf. We kunnen de tabel meerdere keren gebruiken. Elke instantie moet een aliasnaam hebben. Oracle-database terwijl de query wordt uitgevoerd, voeg de tabel samen met zichzelf en produceer het resultaat

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

Sommige zelf-lidmaatschap in Oracle-voorbeeld

(1) Presentatie van hiërarchische gegevens

We hebben een werknemerstabel en we willen de naam van de werknemer specificeren, de naam van de manager voor alle werknemers. We hebben ook een president die dat niet doet, noch rapporteert aan iemand die in de zoekopdracht kan worden weergegeven

De onderstaande query met self-join met outer join om de gegevens in het gewenste formaat te extraheren

Hier zijn enkele van de punten die de moeite waard zijn om op te letten bij de bovenstaande vraag

a. We hebben verschillende aliassen gebruikt voor het veelvuldig voorkomen van de tabel EMP

b. We hebben Left outer join gebruikt om de presidentinformatie ook te tonen

(2) Nog een voorbeeld om de werknemersinformatie te extraheren die dezelfde aanstellingsdatum hebben

(3) We kunnen self-join gebruiken om de rijen in de kolom te transponeren ook. We hebben een customer_bill-tabel met meerdere rijen voor de rijen voor verschillende maanden in het jaar en we willen het factuurbedrag voor verschillende maanden in kolomindeling weergeven

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

tabelquery

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

Query om rijen naar kolommen te transponeren

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;

Op dezelfde manier kunnen we de self-join in Oracle meerdere keren gebruiken. Laat het me weten als je dit bericht leuk vindt

Gerelateerde artikelen
oracle sql join:wat zijn Oracle joins met voorbeelden (Sql-joins), verschillende soorten joins, inner join, outer join, left outer join, right outer join, cross join met voorbeelden
oracle join syntaxisvoorbeelden :Bekijk dit bericht voor oracle join-syntaxisvoorbeelden over inner join, cross join, outer join, left outer join, right outer join
Joins-methode in Oracle:dit bericht legt de verschillende Plan Joins-methoden uit in Oracle, geneste lus, sort merge join, Cartesian join, hash join om te helpen begrijpen
Nested Loop Join in Oracle 11g:bekijk deze pagina voor alle details over Nested Loop Join in Oracle, hoe Nested Loop Join in Oracle 11g anders is, hoe genest loop join werkt in oracle
Hash join in Oracle:Bekijk dit bericht voor de gedetailleerde beschrijving van hash join in Oracle, hoe het anders is dan geneste loop join in oracle


  1. Hoe dynamische kolomnamen te gebruiken in een UPDATE- of SELECT-instructie in een functie?

  2. MariaDB RTRIM() vs RTRIM_ORACLE():wat is het verschil?

  3. Hoe machtigingen voor externe toegang verlenen aan mysql-server voor gebruikers?

  4. Ontbrekend artefact com.microsoft.sqlserver:sqljdbc4:jar:4.0