zoukankan      html  css  js  c++  java
  • 24SQL

    create  or  replace  function f_op (p_n1  number , p_op  varchar2 , p_n2  number )  return  number   

    as  

    begin  

         return  case  when p_op =  '+'  then p_n1 + p_n2

                     when p_op =  '-'  then p_n1 - p_n2

                     when p_op =  '*'  then p_n1 * p_n2

                     when p_op =  '/'  and p_n2<> 0  then p_n1 / p_n2

                     else  null  

                end ;

    end f_op;

    /

    create  or  replace  procedure pro_241(p1  number , p2  number , p3  number , p4  number )  as  

    r_result  number  default  0 ;

    begin  

        for r  in (

            with t_num  as  

              ( select  1  id ,p1  as n  from dual

                 union  

                 select  2  id ,p2  as n  from dual

                 union  

                 select  3  id ,p3  as n  from dual

                 union  

                 select  4  id ,p4  as n  from dual), 

               t_op  as  

              ( select  '+'  as o  from dual

                 union  

                 select  '-'  as o  from dual

                 union  

                 select  '*'  as o  from dual

                 union  

                 select  '/'  as o  from dual)

             select  distinct  

                  a.n   as a,

                  o1.o  as o1,

                  b.n   as b,

                  o2.o  as o2,

                  c.n   as c,

                  o3.o  as o3,

                  d.n   as d

               from t_num a, t_num b, t_num c, t_num d,

                  t_op  o1, t_op  o2, t_op  o3

              where a.id  not  in (b.id, c.id, d.id)

                and b.id  not  in (c.id, d.id)

                and c.id <> d.id)  loop  

           r_result := f_op(f_op(f_op(r.a,r.o1,r.b),r.o2,r.c),r.o3,r.d);

             if r_result=12  then  

           dbms_output.put_line( '((' ||r.a||r.o1||r.b|| ')' ||r.o2||r.c|| ')' ||r.o3||r.d);

             end  if ;  --((a b) c) d   

           r_result := f_op(f_op(r.a,r.o1,r.b),r.o2,f_op(r.c,r.o3,r.d));

             if r_result=12  then  

           dbms_output.put_line( '(' ||r.a||r.o1||r.b|| ')' ||r.o2|| '(' ||r.c||r.o3||r.d|| ')' );

            end  if ;  --(a b) (c d)   

        end  loop ;

    end ;

    /

    set serveroutput on;

    exec pro_241( 32 , 13 , 3 , 17 );

  • 相关阅读:
    javascript 阻止多次点击造成的轮播混乱
    javascript切换效果
    关于bxslider在点击左右按钮之后不能自动切换的问题解决
    javascript 多图无缝切换
    javascript 多图无缝切换
    javascript 切换动画
    javascript无缝全屏轮播
    jquery css3 手机菜单动画综合版
    jquery模仿css3延迟效果
    Mysql的存储过程总结
  • 原文地址:https://www.cnblogs.com/dyh-air/p/5908898.html
Copyright © 2011-2022 走看看