我之前曾在SQL Server工作,并且能够学习如何创建临时变量并在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数据库中做同样的事情。
请帮助!
答案 0 :(得分:1)
如果要在不使用PL / SQL的情况下在SQL * Plus中执行此操作,可以使用substitution variables:
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;
column
指令中的new_value
clause会自动将以下任何选择中的值分配给局部变量,我在l_
之前添加了该变量,但您可以调用任何内容。然后,您可以使用&
变量替换语法在将来的查询中引用该局部变量。
您可以在通常有价值的任何地方使用它们。例如在where
子句中。请注意,文本值必须用引号括起来,因此'&l_studentname'
;在没有引号的情况下, value 在这种情况下将被解释为列名,这将无效。
答案 1 :(得分: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语句,但是如果你在编程块中使用它,比如一个过程。
希望有所帮助