天天看點

oracle筆記--case的使用和綁定變量

oracle裡的case功能非常強大,

簡單的用法:

select 

CASE sex  
WHEN '1' THEN '男'  
WHEN '2' THEN '女'  
ELSE '其他' END      

from student;

還沒有當做預處理去使用

select (case 1

when 1 then 11

when 2 then 22

else 33 end) from dual;

綁定變量

SQL>variable vcc varchar2(10); 
SQL> exec :vcc := 'test'; 
SQL> select :vcc from dual;      
定義一個變量 :type,就可以和case混合使用了      
select (case :type

when 1 then 11

when 2 then 22

else 33 end) from dual;




--

使用示例

select 
       
to_char(oper_time,  (case :type

when 1 then 'yyyymmdd'

when 2 then 'yyyymm'

when 3 then 'yyyy'

else 'yyyy' end)) oper_time, count(1)
      
from info group by to_char(oper_time, (case :type when 1 then 'yyyymmdd' when 2 then 'yyyymm' when 3 then 'yyyy' else 'yyyy' end)); 根據綁定變量的值的變化去動态執行相應的語句

在PL/SQL Developer裡,sql視窗中,選中sql語句,右鍵->測試, 填上綁定變量的值,就可以友善的檢視綁定變量的使用情況,

可以通過測試發現某個位置是否可以使用綁定變量

繼續閱讀