oracle case when使用介紹

2021-08-26 01:57:34 字數 1699 閱讀 2609

case 語句

case selector

when value1 then action1;

when value2 then action2;

when value3 then action3;

…..else actionn;

end case;

case表示式

declare

temp varchar2(10);

v_num number;

begin

v_num := &i;

temp := case v_num

when 0 then 'zero'

when 1 then 'one'

when 2 then 'two'

else

null

end;

dbms_output.put_line('v_num = '||temp);

end;

case搜尋語句

case

when (boolean_condition1) then action1;

when (boolean_condition2) then action2;

when (boolean_condition3) then action3;

……else actionn;

end case;

case搜尋表示式

declare

a number := 20;

b number := -40;

tmp varchar2(50);

begin

tmp := case

when (a>b) then 'a is greater than b'

when (aelse

'a is equal to b'

end;

dbms_output.put_line(tmp);

end;

select case when 的用法

select 與 case結合使用最大的好處有兩點,一是在顯示查詢結果時可以靈活的組織格式,二是有效避免了多次對同乙個表或幾個表的訪問。下面舉個簡單的例子來說明。例如表 students(id, name ,birthday, ***, grade),要求按每個年級統計男生和女生的數量各是多少,統計結果的表頭為,年級,男生數量,女生數量。如果不用select case when,為了將男女數量並列顯示,統計起來非常麻煩,先確定年級資訊,再根據年級取男生數和女生數,而且很容易出錯。用select case when寫法如下:

select grade, count (case when *** = 1 then 1 /**** 1為男生,2位女生*/

else null

end) 男生數,

count (case when *** = 2 then 1

else null

end) 女生數

from students group by grade;

Oracle CASE WHEN 用法介紹

簡單case函式 case when 1 then 男 when 2 then 女 else 其他 end case搜尋函式 case when 1 then 男 when 2 then 女 else 其他 end 2.1 select case when 用法 select grade,count...

Oracle CASE WHEN 用法介紹

簡單case函式 case when 1 then 男 when 2 then 女 else 其他 end case搜尋函式 case when 1 then 男 when 2 then 女 else 其他 end 2.1 select case when 用法 select grade,count...

Oracle CASE WHEN 用法介紹

簡單case函式 case when 1 then 男 when 2 then 女 else 其他 end case搜尋函式 case when 1 then 男 when 2 then 女 else 其他 end 2.1 select case when 用法 select grade,count...