sql >> Database >  >> RDS >> Oracle

Tabel variabele stijl entiteiten in Oracle

Sommige antwoorden kunnen u vertellen dat Oracle tabelvariabelen heeft, en tot op zekere hoogte ook. De meeste antwoorden zullen u echter vertellen dat u dit helemaal niet in Oracle zou moeten doen; het is gewoon niet nodig.

In jouw geval zou ik gewoon een CTE gebruiken:

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

UPDATE:Het antwoord dat ik al heel lang probeer te krijgen, staat in Ben's opmerking hieronder, die ik hier opneem:"Er is geen variabele die u direct kunt maken en kunt toevoegen aan andere tabellen in standaard SQL @wcm, ja . Er kunnen een aantal verschillende soorten objecten worden gemaakt waarmee u dit kunt doen, maar niet precies zoals u zou doen in T-SQL".



  1. Een vergelijking tussen de MySQL Clone Plugin en Xtrabackup

  2. SQL:een tabel omgekeerd transponeren

  3. geneste selectie- of join-query?

  4. Voeg rijen in dezelfde id samen in een array