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. 高精度のMySQLNOW()関数

    2. oracle.dataaccess.dllの使用中にエラーが発生しました

    3. 連続する日付の有効期間を結合する

    4. MySQLクエリ:コンマ区切りの値をコンマ区切りの文字列を含む列と一致させます