DB2数据库decode()函数的用法

一、按照字段内容分组;

闲话少说

1.创建表T1:sql语句如下

create table t1(
  id integer not null primary key,
  name varchar(10),
  job varchar(10)
);

2.插入部分数据:

insert into t1 values(1,'jack','vp');
insert into t1 values(2,'tony','ceo');
insert into t1 values(3,'merry','vp');
insert into t1 values(4,'linda','operation');
insert into t1 values(5,'james','operation');

例子:统计‘vp’及以上的职位的人数和普通员工的人数?

奉上sql语句如下:

select decode(job,'vp','vp_ceo','ceo','vp_ceo','operation'),count(*) job_count from t1 group by decode(job,'vp','vp_ceo','ceo','vp_ceo','operation');

二、按照字段内容排序;

1.创建表T2;sql语句如下:

create table t2(
  id integer not null primary key,
  dept_name varchar(10),
  region_id integer
);

2.插入数据:

insert into t2 values(1,'deptA',12);
insert into t2 values(2,'deptA',10);
insert into t2 values(3,'deptA',9);
insert into t2 values(4,'deptA',7);
insert into t2 values(5,'deptB',12);
insert into t2 values(6,'deptB',13);
insert into t2 values(7,'deptB',22);
insert into t2 values(8,'deptB',9);
insert into t2 values(9,'deptC',8);
insert into t2 values(10,'deptC',10);
insert into t2 values(11,'deptC',11);

例子1:按部门dept_name排序(A->B->C)排序,对每个部门内部按照dept升序?

select * from t2 order by decode(dept_name,'deptA',1,'deptB',2,'deptC',3),region_id;

例子2;若dept_name为deptA,则按照id升序排列,否则按照region_id升序排列?

select * from t2 order by decode(dept_name,'deptA',id,region_id);

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值