Oracle plsql将同一列中的2个值存储在2个不同的变量中
我的表tbl有如下值:Oracle plsql将同一列中的2个值存储在2个不同的变量中,sql,oracle,plsql,Sql,Oracle,Plsql,我的表tbl有如下值: +-------+ |name | +-------+ |n1 | |n2 | +-------+ 我想要的是使用一个查询,将值n1和n2同时存储到两个不同的变量中 declare val1 varchar2(2); val2 varchar2(2); begin select name into --val1,val2 from tbl where ... end; val1的值必须为n1,val
+-------+
|name |
+-------+
|n1 |
|n2 |
+-------+
我想要的是使用一个查询,将值n1和n2同时存储到两个不同的变量中
declare
val1 varchar2(2);
val2 varchar2(2);
begin
select name
into --val1,val2
from tbl
where ...
end;
val1的值必须为n1,val2的值必须为n2使用简单的聚合,如下所示:
select max(name), min(name)
into val1, val2
from tbl;
这也适用于非数值变量
或者在单个查询中使用相关子查询,如下所示:
select ( select name from tbl where name = 'n1' ),
( select name from tbl where name = 'n2' )
into val1, val2
from dual;
使用一个简单的聚合:
select max(name), min(name)
into val1, val2
from tbl;
这也适用于非数值变量
或者在单个查询中使用相关子查询,如下所示:
select ( select name from tbl where name = 'n1' ),
( select name from tbl where name = 'n2' )
into val1, val2
from dual;
要使其可读,可以在语句中添加2个select:
select name
into val1
from tbl
where name = 'n1';
select name
into val2
from tbl
where name = 'n2';
要使其可读,可以在语句中添加2个select:
select name
into val1
from tbl
where name = 'n1';
select name
into val2
from tbl
where name = 'n2';