oracle if else 判斷


CREATE OR REPLACE FUNCTION fn_GetClassifyBymxmjazfs (v_azfs varchar2,v_mx varchar2,v_mj varchar2)
return varchar2
is
v_Classify varchar2(2000);
v_unit lyxxb.lyid%type;
SQL_GetUnit varchar2(2000);

begin

SQL_GetUnit:='SELECT lyid FROM lyxxb';

execute immediate SQL_GetUnit into v_unit;--執行oracle 方法

-- AZFS - '01'
   -- 判斷墓型或者面積不屬於雙0.5  10
-- azfs = '骨灰林  20
-- azfs = 骨灰牆  骨灰郎 骨灰庭  30
-- azfs = '01'  且墓型或面積屬於雙0.5   41
-- azfs = '20'   42 
--SELECT * FROM AZFS
-- 太子峪
 if  v_unit='TZY' then  
    begin
       if v_azfs='01' AND v_mx <>'福榮墓' then v_Classify:='10'; return v_Classify;
        elsif v_azfs='04'  then v_Classify:='20'; return v_Classify;
        elsif v_azfs='02' OR v_azfs='03' then v_Classify:='30'; return v_Classify;
        elsif v_azfs='01'  AND v_mx='福榮墓' then v_Classify:='41'; return v_Classify;        
        elsif v_azfs='20'  then v_Classify:='42'; return v_Classify;
       end if;
    end;
  --金山
 elsif v_unit='JS' then
  begin
        v_Classify:='10';
        return v_Classify;
    end;
   --溫泉
   elsif v_unit='WQMY' then
  begin
        v_Classify:='10';
        return v_Classify;
    end;    
 --八達嶺
 elsif v_unit='BDL' then
  begin
        v_Classify:='10';
        return v_Classify;
    end;
   --朝陽
  elsif v_unit='CYLY' then
  begin
        v_Classify:='10';
        return v_Classify;
    end;
    --寶雲嶺
   elsif v_unit='BYL' then
  begin
        v_Classify:='10';
        return v_Classify;
    end;
    --天慈
  elsif v_unit='TC' then
  begin
        v_Classify:='10';
        return v_Classify;
    end;
    --通惠
   elsif v_unit='THLY' then
  begin
        v_Classify:='10';
        return v_Classify;
    end;
  end if;
--return v_Classify;

exception
  when others then dbms_output.put_line('error');
  return -1;
end fn_GetClassifyBymxmjazfs;
/

SELECT fn_GetClassifyBymxmjazfs('01','福榮墓1','0.48') FROM dual;

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM