SELECT sum(a) INTO prm_a,
           sum(b) INTO prm_b,
           sum(c) INTO prm_c 
     FROM table_a
     WHERE ...;
                                 
不知道这个语法改怎么写?
我就是想从 table_a表中查出 a,b,c的值分别存在 3个变量中。

解决方案 »

  1.   

    declare 
       v1 number;
       v2 number;
       v3 number;
    begin
    SELECT sum(a) INTO prm_a,
               sum(b) INTO prm_b,
               sum(c) INTO prm_c 
    into  v1,v2,v3 
         FROM table_a
         WHERE ...;
    end;
      

  2.   

    SELECT sum(a) ,
               sum(b) , 
               sum(c) INTO prm_a,prm_b,prm_c 
         FROM table_a
         WHERE ...;
                        
    变量要定义
      

  3.   

    SELECT sum(a),sum(b),sum(c) INTO prm_a,prm_b,prm_c FROM table_a
         WHERE ...;
      

  4.   

    declare 
      v1 number; 
      v2 number; 
      v3 number; 
    begin 
    SELECT a,
           b,
           c 
    into  v1,v2,v3 
        FROM table_a 
        WHERE ...; 
    end;
      

  5.   

    忘记删了,改下:
    declare 
      prm_a number; 
      prm_b number; 
      prm_c number; 
    begin 
    SELECT sum(a) ,
              sum(b) ,
              sum(c)  
    into  prm_a,prm_b,prm_c 
        FROM table_a 
        WHERE ...; 
    end; 
      

  6.   

    declare
      prm_a number;
      prm_b number;
      prm_c number;
    begin
        SELECT sum(a) INTO prm_a,
               sum(b) INTO prm_b,
               sum(c) INTO prm_c 
         FROM table_a
         WHERE ...;
    end;
    /
      

  7.   


    declare
      prm_a number;
      prm_b number;
      prm_c number;
    begin
        SELECT sum(t.sal),sum(t.mgr),sum(t.deptno) INTO prm_a, prm_b, prm_c 
         FROM scott.emp t;
         dbms_output.put_line(prm_a||' ,  '||prm_b||'  , '||prm_c);
    end;
    /
                                     
    --在plsql的command模式窗口里面,执行结果如下
    SQL> 
     
    29025 ,  100611  , 310
     
    PL/SQL procedure successfully completed
     
    SQL> 
      

  8.   

    因此,你的sql语句是:declare
      prm_a number;
      prm_b number;
      prm_c number;
    begin
        SELECT SELECT sum(a),sum(b),sum(c) INTO prm_a, prm_b, prm_c  
         FROM table_a
         WHERE ...;
    end;
    /
      

  9.   

    我在写一遍 练练
    declare
      prm_a number;
      prm_b number;
      prm_c number;
    begin  
      select sum(a), sum(b), sum(c)
          into prm_a, prm_b, prm_c
          from table_a
      where ...;
    end
      

  10.   

    declare
    v_sum_a number;
    v_sum_b number;
    v_sum_c number;
    begin
    select sum(a),sum(b),sum(c)into v_sum_a,v_sum_b,v_sum_c
    from table_a
    where ...;
    dbms_output.put_line(v_sum_a||v_sum_b||v_sum_c);
    exception
    --最好作下异常处理。如果表中没有记录,并且不抓异常的话会抛出异常。
    when others then
    dbms_output.put_line('没有记录');
    end;
      

  11.   

    其实这个问题非常简单,就是吧三个字段值的总和求出来,取出来,然后放进三个变量里面,但是别忘了在DECLARE中定义下。做下异常处理也是很好的习惯!
      

  12.   

    declare
      prm_a number;
      prm_b number;
      prm_c number;
    begin
        SELECT sum(a) INTO prm_a,
               sum(b) INTO prm_b,
               sum(c) INTO prm_c 
         FROM table_a
         WHERE ...;
    end;
    /
      

  13.   

     看半天 楼主不是说要取出来再插入 表中的吗 
       怎么不要用INSERT呢```