case when or,oracle的case when用法?

营销圈公众号引导关注

1. CASE WHEN 表达式有两种形式

case when or,oracle的case when用法?

–简单Case函数

CASE sex

WHEN \’1\’ THEN \’男\’

WHEN \’2\’ THEN \’女\’

ELSE \’其他\’ END

–Case搜索函数

CASE

WHEN sex = \’1\’ THEN \’男\’

WHEN sex = \’2\’ THEN \’女\’

ELSE \’其他\’ END

2. CASE WHEN 在语句中不同位置的用法

2.1 SELECT CASE WHEN 用法

SELECT grade, COUNT (CASE WHEN sex = 1 THEN 1 /*sex 1为男生,2位女生*/ ELSE NULL 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.关于IF-THEN-ELSE的其他实现

3.1 DECODE() 函数

select decode(sex, \’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 or,oracle的case when用法?

好了,这篇文章的内容营销圈就和大家分享到这里,如果大家网络引流和网络创业感兴趣,可以添加微信:Sum8338 备注:营销圈学习,我拉你进直播课程学习群,每周135晚上都是有实战干货的引流技术和创业项目课程免费分享!

好了,这篇文章的内容营销圈就和大家分享到这里,如果大家对网络推广引流和网络创业项目感兴趣,可以添加微信:Sum8338 备注:营销圈引流学习,我拉你进直播课程学习群,每周135晚上都是有实战的推广引流技术和网络创业项目课程分享,当然是免费学!

版权声明:本站部分文章来源互联网用户自发投稿,主要目的在于分享信息,版权归原作者所有,不承担相关法律责任。如有侵权请联系我们反馈邮箱yingxiaoo@foxmail.com,我们将在7个工作日内进行处理,如若转载,请注明本文地址:https://www.yingxiaoo.com/53062.html