【SQL】CASE与DECODE
来源:互联网 发布:儿童牙刷推荐 知乎 编辑:程序博客网 时间:2024/06/09 04:31
1. case..when case..when语句用于按照条件返回查询结果,如当我们想把emp表的工资按照多少分成几个不同的级别,并分别统计各个级别的员工数。SQL语句如下:
select (case
when sal <= 1000 then
'1'
when sal > 1000 and sal <= 2000 then
'2'
when sal > 2000 and sal <= 3000 then
'3'
when sal > 3000 and sal <= 4000 then
'4'
else
'5'
end) as Levels,
count(*)
from emp
group by (case
when sal <= 1000 then
'1'
when sal > 1000 and sal <= 2000 then
'2'
when sal > 2000 and sal <= 3000 then
'3'
when sal > 3000 and sal <= 4000 then
'4'
else
'5'
end) order by levels;
其中,when后可直接跟确定的条件,也可以像上面一样跟表达式。当我们想要使用group..by分组时,要把case..when整个语句放在group by 子句中,不能使用如上面case..when语句的别名"Levels"。
2. decode函数
(1)decode(条件,值1,返回值1,值2,返回值2,...值n,返回值n,缺省值)
当条件等于值1,则返回值2;当条件等于值2,则返回值2...
(2)decode(字段或字段的运算,值1,值2,值3)
select (case
when sal <= 1000 then
'1'
when sal > 1000 and sal <= 2000 then
'2'
when sal > 2000 and sal <= 3000 then
'3'
when sal > 3000 and sal <= 4000 then
'4'
else
'5'
end) as Levels,
count(*)
from emp
group by (case
when sal <= 1000 then
'1'
when sal > 1000 and sal <= 2000 then
'2'
when sal > 2000 and sal <= 3000 then
'3'
when sal > 3000 and sal <= 4000 then
'4'
else
'5'
end) order by levels;
其中,when后可直接跟确定的条件,也可以像上面一样跟表达式。当我们想要使用group..by分组时,要把case..when整个语句放在group by 子句中,不能使用如上面case..when语句的别名"Levels"。
2. decode函数
(1)decode(条件,值1,返回值1,值2,返回值2,...值n,返回值n,缺省值)
当条件等于值1,则返回值2;当条件等于值2,则返回值2...
(2)decode(字段或字段的运算,值1,值2,值3)
当字段或字段的运算等于值1,则返回值2,否则返回值3。
如:有表如下
我们想得到如下的查询结果:
SQL语句如下:
select country,decode(sex,'1','男','2','女') as sex,population from test;
0 0
- 【SQL】CASE与DECODE
- case when 与decode
- 【SQL基础】case when和decode的用法与区别
- decode与case的区别
- case与decode的区别
- case when 与 decode 用法
- case与decode的区别
- case表达式 与decode函数
- oracle-SQL-case when 改用 DECODE
- sql与oracle中有关case和decode的用法(行转列)及比较
- sql与oracle中有关case和decode的用法(行转列)及比较
- sql与oracle中有关case和decode的用法(行转列)及比较
- SQL中条件语句decode与case...when...else...end的用法
- sql与oracle中有关case和decode的用法(行转列)及比较
- sql与oracle中有关case和decode的用法(行转列)及比较
- CASE-DECODE
- oracle——decode() 与 case
- oracle decode 与case 的用法
- 安卓调用ffmepg压缩视频
- 字符串,列表,字典,元祖,集合
- C
- 利用PHPExcel读取Excel的数据和导出数据到Excel
- LaunchScreen黑屏,图片加载不出来
- 【SQL】CASE与DECODE
- Navicat远程登录mysql5.7报错(10038)
- 说说在 DOM 扩展中,JavaScript 如何对 DOM 元素进行遍历
- apache配置ip链接
- iOS开发常用的加密方式介绍和使用
- Linux学习之五(bash特性详解)
- Smack 报错:Exception in loadSmackClass
- 注册表操作
- 解析Javascript事件冒泡机制