sql >> Database teknologi >  >> RDS >> Oracle

Deltag selv i orakel med eksempler

Denne Oracle SQL-tutorial fokuserer på selvdeltagelse i Oracle og giver syntaks, forklaringer, eksempler

En selvtilslutning i Oracle er en sammenføjning af oracle-tabellen til sig selv. Vi kan bruge tabellen flere gange. Hver forekomst skal have et aliasnavn. Oracle-databasen, mens du udfører forespørgslen, samler tabellen med sig selv og producerer resultatet

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

Nogle selv slutter sig til Oracle-eksempel

(1) Præsentation af hierarkiske data

Vi har en medarbejdertabel, og vi ønsker at angive medarbejdernavn, ledernavn for alle medarbejdere. Vi har også en præsident, som ikke rapporterer til nogen for at vise i forespørgslen

Nedenstående forespørgsel med self join with outer join for at udtrække dataene i det ønskede format

Her er nogle af de punkter, som er værd at bemærke ovenstående forespørgsel

en. Vi har brugt forskellige alias til den multiple forekomst af tabellen EMP

b. Vi har brugt venstre ydre sammenføjning til også at vise præsidentens oplysninger

(2) Et andet eksempel til at udtrække medarbejderoplysninger, der har samme ansættelsesdato

(3) Vi kan bruge self join til at transponere rækkerne i kolonnen også. Vi har en customer_bill-tabel, som har flere rækker for rækkerne for forskellige måneder i året, og vi ønsker at vise fakturabeløbet for forskellige måneder i kolonneformat

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

tabelforespørgsel

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

Forespørgsel om at transponere rækker til kolonne

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;

På samme måde kan vi have flere anvendelser af selvtilslutningen i oracle. Fortæl mig venligst, hvis du kan lide dette indlæg

Relaterede artikler
oracle sql join :Hvad er Oracle Joins med eksempler (Sql joins), Forskellige typer joins , Inner Join, Outer join,venstre ydre joinforbindelse, højre ydre joinforbindelse, cross join med eksempler
oracle join syntakseksempler :Tjek dette indlæg for Oracle join syntakseksempler på indre join, cross join, outer join, left outer join,right outer join
Joins Method in Oracle :Dette indlæg forklarer de forskellige Plan Joins metoder i Oracle, nestet loop, sorter flette join, Cartesian join, hash join for at hjælpe med at forstå
Nested Loop Join i Oracle 11g:Tjek denne side for alle detaljer om Nested loop join i oracle,hvordan Nested Loop Join i Oracle 11g er anderledes, hvor indlejret loop join fungerer i Oracle
Hash join i Oracle:Tjek dette indlæg for den detaljerede beskrivelse af Hash join i Oracle, hvordan det er forskelligt fra Nested Loop join i oracle


  1. Hvorfor ingen vinduesfunktioner i where-klausuler?

  2. Sådan omdøbes primær nøglebegrænsning for flere tabeller i SQL Server-databasen - SQL Server / TSQL vejledning del 64

  3. kan ikke modtage ud parameter fra oracle procedure udført af mybatis

  4. SQL Rekursiv CTE:Finder objekter forbundet med egenskaber