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語句,右鍵->測試, 填上綁定變量的值,就可以友善的檢視綁定變量的使用情況,
可以通過測試發現某個位置是否可以使用綁定變量