oraclecase函数⽤法,oraclecasewhen语句的⽤法详解代码如下:
--简单Case函数
CASE sex
WHEN '1' THEN '男'
WHEN '2' THEN '⼥'
ELSE '其他' END
--Case搜索函数
CASE
WHEN sex = '1' THEN '男'
WHEN sex = '2' THEN '⼥'
ELSE '其他' END
⽤法2.1 SELECT CASE WHEN ⽤法
代码如下:
SELECT grade,COUNT (CASE WHEN sex = 1 THEN 1 /*sex 1为男⽣,2位⼥⽣*/
ELSE NULL
group by的用法及原理详解END) 男⽣数,
COUNT (CASE WHEN sex = 2 THEN 1
ELSE NULL
END) ⼥⽣数
FROM students GROUP BY grade;
2.2 WHERE CASE WHEN ⽤法
代码如下:
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
2.3 GROUP BY CASE WHEN ⽤法
代码如下:
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;
3.1 DECODE() 函数
代码如下:
select decode(sex,'M','Male','F','Female','Unknown')
from employees;
貌似只有Oracle提供该函数,⽽且不⽀持ANSI sql,语法上也没CASE WHEN清晰,个⼈不推荐使⽤。
3.2 在WHERE中特殊实现
代码如下:
SELECT T2.*,T2
WHERE (T2.COMPARE_TYPE = 'A' AND T1.SOME_TYPE LIKE 'NOTHING%')
OR
(T2.COMPARE_TYPE != 'A' AND T1.SOME_TYPE NOT LIKE 'NOTHING%')
这种⽅法也是在特殊情况下使⽤,要多注意逻辑,不要弄错。
总结
如果觉得编程之家⽹站内容还不错,欢迎将编程之家⽹站推荐给程序员好友。
本图⽂内容来源于⽹友⽹络收集整理提供,作为学习参考使⽤,版权属于原作者。