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...