複製****如下:
--簡單case函式 case *** when '1' then '男' when '2' then '女' else '其他' end --case搜尋函式 casewhen *** = '1' then '男' when *** = '2' then '女' else '其他' end
複製****如下:
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;
複製****如下:
select t2.*, t1.* from t1, t2 where (case when t2.compare_type = 'a' and t1.some_type like 'nothing%'
then 1
when t2.compare_type != 'a' and
t1.some_type not like 'nothing%'
then 1
else 0
end) = 1
複製****如下:
select case when salary <= 500 then '1' when salary > 500 and salary <= 600 then '2' when salary > 600 and salary <= 800 then '3' when salary > 800 and salary <= 1000 then '4' else null end salary_class, -- 別名命名count(*) from table_a group by case when salary <= 500 then '1' when salary > 500 and salary <= 600 then '2' when salary > 600 and salary <= 800 then '3' when salary > 800 and salary <= 1000 then '4' else null end;
複製****如下:
select decode(***, 'm', 'male', 'f', 'female', 'unknown')from employees;
貌似只有oracle提供該函式,而且不支援ansi sql,語法上也沒case when清晰,個人不推薦使用。3.2 在where中特殊實現
複製****如下:
select t2.*, t1.* from t1, t2 where (t2.compare_type = 'a' and t1.some_type like 'nothing%')
or
(t2.compare_type != 'a' and t1.some_type not like 'nothing%')
這種方法也是在特殊情況下使用,要多注意邏輯,不要弄錯。
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...