【问题标题】:Oracle plsql store 2 values from same column in 2 different variableOracle plsql 将来自同一列的 2 个值存储在 2 个不同的变量中
【发布时间】:2018-11-19 18:02:37
【问题描述】:

我的表 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,val2 的值必须为 n2

【问题讨论】:

    标签: sql oracle plsql


    【解决方案1】:

    使用简单的聚合作为:

    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】:

      为了使其可读,您可以在语句中添加 2 个选择:

      select name 
      into val1
      from tbl
      where name = 'n1';
      
      select name 
      into val2
      from tbl
      where name = 'n2';
      

      【讨论】:

        猜你喜欢
        • 2012-07-10
        • 2022-01-22
        • 1970-01-01
        • 1970-01-01
        • 2016-08-27
        • 2022-11-20
        • 2021-06-14
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多