"景先生毕设|www.jxszl.com

decode、case  写法介绍

2023-09-12 15:40编辑: www.jxszl.com景先生毕设

                             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和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

 

原文链接:http://www.jxszl.com/biancheng/shujuku/445459.html