decode、case 写法介绍
decode、case 写法介绍
decode 语法:decode(条件,值1,返回值1,值2,返回值2,...值n,返回值n,缺省值)
case 语法:case 字段 when 条件 then 值1 when 条件n...值n else end
case when 条件 then 值1 when 条件n...值n then else end
举个栗子: 表1(test1204) 有字段 id ,name ,sex(1,表示男,2 表示女) age (年龄) , course (课程:1 语文,2 英语 3 化学 4 数学)
class(班级:1 班级1, 2 班级2 ,3 班级3,4 班级4) ,score(分数)
drop table test1204
create table test1204
(
id varchar(10),
name varchar(10) ,
sex varchar(1),
age number,
course varchar(1),
classname varchar(1),
score number
);
insert into test1204 values('1','name1','1','10','1','1','50');
insert into test1204 values('2','name2','1','10','2','1','80');
insert into test1204 values('3','name3','1','10','3','1','50');
insert into test1204 values('4','name4','2','10','4','1','90');
insert into test1204 values('5','name5','2','10','1','2','100');
insert into test1204 values('6','name6','2','10','1','2','90');
-- 查询表信息 显示备注decode 写法
select name ,decode(sex,'1','男','2','女') 性别 from test1204 a;
-- 查询表信息 显示备注case 写法
select name ,case sex when '1' then '男' when '2' then '女' else '' end 性别 from test1204 a;
-- 或者:
select name ,case when sex ='1' then '男' when sex ='2' then '女' else '' end 性别 from test1204 a;
case 语法:case 字段 when 条件 then 值1 when 条件n...值n else end
case when 条件 then 值1 when 条件n...值n then else end
举个栗子: 表1(test1204) 有字段 id ,name ,sex(1,表示男,2 表示女) age (年龄) , course (课程:1 语文,2 英语 3 化学 4 数学)
class(班级:1 班级1, 2 班级2 ,3 班级3,4 班级4) ,score(分数)
drop table test1204
create table test1204
(
id varchar(10),
name varchar(10) ,
sex varchar(1),
age number,
course varchar(1),
classname varchar(1),
score number
);
insert into test1204 values('1','name1','1','10','1','1','50');
insert into test1204 values('2','name2','1','10','2','1','80');
insert into test1204 values('3','name3','1','10','3','1','50');
insert into test1204 values('4','name4','2','10','4','1','90');
insert into test1204 values('5','name5','2','10','1','2','100');
insert into test1204 values('6','name6','2','10','1','2','90');
-- 查询表信息 显示备注decode 写法
select name ,decode(sex,'1','男','2','女') 性别 from test1204 a;
-- 查询表信息 显示备注case 写法
select name ,case sex when '1' then '男' when '2' then '女' else '' end 性别 from test1204 a;
-- 或者:
select name ,case when sex ='1' then '男' when sex ='2' then '女' else '' end 性别 from test1204 a;
-- 多条件是case和decode 写法
-- 性别为女显示课程,性别为难显示班级
select name,
case
when sex = '1' then
decode(course, '1', '语文', '2', '英语', '3', '化学', '4','数学')
when sex = '2' then
decode(classname, '1','班级1', '2', '班级2', '3', '班级3', '4', '班级4')
else ''
end 类型
from test1204 a
http://www.itemperor.com/a/SQL/67.html
-- 性别为女显示课程,性别为难显示班级
select name,
case
when sex = '1' then
decode(course, '1', '语文', '2', '英语', '3', '化学', '4','数学')
when sex = '2' then
decode(classname, '1','班级1', '2', '班级2', '3', '班级3', '4', '班级4')
else ''
end 类型
from test1204 a
http://www.itemperor.com/a/SQL/67.html
原文链接:http://www.jxszl.com/biancheng/shujuku/445459.html