- 论坛徽章:
- 0
|
面试的时候问的oracle的问题,请教
decode 函数的用法
--建表
create table stud
(
sid varchar2(10),
kcbm varchar2(10),
cj int
);
--插入测试数据
insert into stud values('1','语文',80);
insert into stud values('2','数学',90);
insert into stud values('3','英语',100);
commit;
--创建视图,decode用法
create or replace view cjd as
select sid,
decode(kcbm,'语文',cj,0) 语文,
decode(kcbm,'数学',cj,0) 数学,
decode(kcbm,'英语',cj,0) 英语
from stud
order by sid;
--显示数据
select * from cjd;
执行过程如下:
SQL>; create table stud(sid varchar2(10),
2 kcbm varchar2(10),
3 cj int);
表已创建。
SQL>; insert into stud values('1','语文',80);
已创建 1 行。
SQL>; insert into stud values('2','数学',90);
已创建 1 行。
SQL>; insert into stud values('3','英语',100);
已创建 1 行。
SQL>; commit;
提交完成。
SQL>; create or replace view cjd as
2 select sid,
3 decode(kcbm,'语文',cj,0) 语文,
4 decode(kcbm,'数学',cj,0) 数学,
5 decode(kcbm,'英语',cj,0) 英语
6 from stud
7 order by sid;
视图已建立。
SQL>; select * from cjd;
SID 语文 数学 英语
---------- ---------- ---------- ----------
1 80 0 0
2 0 90 0
3 0 0 100 |
|