Oracle
 sql >> база данни >  >> RDS >> Oracle

Обекти на стил на променлива таблица в Oracle

Някои отговори може да ви кажат, че Oracle има таблични променливи и го има до известна степен. Повечето отговори обаче ще ви кажат, че изобщо не трябва да правите това в Oracle; просто няма нужда.

Във вашия случай просто бих използвал 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

АКТУАЛИЗАЦИЯ:Отговорът, който се опитвах да получа от дълго време, е в коментара на Бен по-долу, който включвам тук:„Няма променлива, която можете да създадете в движение и да се присъедините към други таблици в стандартен SQL @wcm, да . Има редица различни типове обекти, които могат да бъдат създадени, които ще ви позволят да направите това, но не точно както бихте направили в T-SQL".



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Напишете оператор за вмъкване с клауза за избор, връщаща идентификатор в Oracle

  2. sqlplus как да намерите подробности за текущо свързаната сесия на база данни

  3. SUBSTR() Функция в Oracle

  4. Предотвратяване на автоматично подаване на Oracle Connection за JNDI Datasource на JBoss 7 (Jeeves DBMS)

  5. Как да преброите броя на появяванията на символ в стойност на Oracle varchar?