1. 程式人生 > >oracle筆記--case的使用和繫結變數

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語句,右鍵->測試, 填上繫結變數的值,就可以方便的檢視繫結變數的使用情況,

可以通過測試發現某個位置是否可以使用繫結變數