sql >> Databasteknik >  >> RDS >> Oracle

Tabell Variable Style Entities i Oracle

Vissa svar kan berätta att Oracle har tabellvariabler, och det har det i viss utsträckning. De flesta svar kommer dock att säga att du inte alls borde göra detta i Oracle; det finns helt enkelt inget behov.

I ditt fall skulle jag helt enkelt använda en CTE:

with users as (
    select 1001 as ID, 'Bob' as Name, 25 as Age, 'M' as Gender from dual
    union
    select 1021 as ID, 'Sam' as Name, 29 as Age, 'F' from dual
          )
 , grades as (
    select 1001 as UserID , 120 as ClassID, 4 as Grade from dual
    Union
    select 1001 as UserID , 220 as ClassID, 2 as Grade from dual
    Union
    select 1021 as UserID , 130 as ClassID, 4 as Grade from dual
    Union
    select 1021 as UserID , 230 as ClassID, 4 as Grade from dual
    Union
    select 1021 as UserID , 340 as ClassID, 2 as Grade from dual
           )
select u.ID, u.Name, AVG(g.grade) as gpa
  from users u
  join grades g on u.ID = g.UserID
 group by u.ID, u.Name

UPPDATERING:Svaret jag har försökt få länge finns i Bens kommentar nedan som jag inkluderar här:"Det finns ingen variabel, som du kan skapa i farten och ansluta till andra tabeller i standard SQL @wcm, ja . Det finns ett antal olika typer av objekt som kan skapas som gör att du kan göra detta, men inte exakt som du skulle göra i T-SQL."



  1. MySQL hur fyller man i saknade datum inom intervallet?

  2. Django AttributeError 'float'-objekt har inget attribut 'split'

  3. Flyway Migration med java

  4. Hur hjälper databasdesign att organisera lärare, lektioner och elever?