1

以前にSQLServerを使用していて、一時変数を作成してSQLで使用する方法を学ぶことができました。

私は次のようなものを書いていました:

declare @Student nvarchar(255)

select @Student = studentname from sometable where somecondition = 1

declare @teacher nvarchar(255)

select @teacher = teachername from sometable2 where somecondition >2

その後

select @student, @teacher, other columns from sometable where some condition

ORACLEデータベースでも同じことをしたい。

助けてください!

4

2 に答える 2

1

PL/SQLを使用せずにSQL*Plusでこれを行う場合は、置換変数を使用できます:

column studentname new_value l_studentname
select studentname from sometable where somecondition = 1;

column teachername new_value l_teachername
select teachername from sometable2 where somecondition >2;

select '&l_studentname', '&l_teachername,' other columns
from sometable where somecondition;

ディレクティブのnew_valueは、column後続の選択からの値をローカル変数に自動的に割り当てます。これは前に追加しましl_たが、何でも呼び出すことができます。&次に、変数置換構文を使用して、今後のクエリでそのローカル変数を参照します。

通常は価値がある場所ならどこでも使用できます。例えばwhere節で。テキスト値は引用符で囲む必要があることに注意してください'&l_studentname'。この場合、引用符がないとは列名として解釈され、機能しません。

于 2012-05-10T11:52:38.623 に答える
0

あなたは変数を宣言することができます

SOME_VAR VARCHAR2(255);

次に、クエリで直接使用します

SELECT DISTINCT YT.TEACHER_NAME
  INTO SOME_VAR 
  FROM YOUR_TABLE YT
WHERE YT.TEACHER_ID = 1;

その後、この変数を自由に使用してSOME_VAR、さらに使用することができます

もちろん、これは単純な SQL ステートメントでは機能しませんが、プロシージャーなどのプログラミング ブロックで使用する場合には有効です。

それが役に立てば幸い

于 2012-05-10T07:51:36.410 に答える