在数据库开发的过程当中,有很多时候需要将行转换成列或者将列转换成行来显示数据,而往往我们在建立表结构时不能根据显示的要求来保存数据,于是乎只能在保存数据之后做一些必要的操作(比方说:建立视图等)来达到显示的目的。
下面用一个常见的数据显示来说明decode函数的用法。就是成绩单的显示,这个是教学管理系统中最常见的。我想做开发的人员都遇到过这个,而且在大学期间也是常常接触成绩单,显示的是:姓名、语文、数学等
实现脚本如下(cjd.sql):
--建表
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
decode 函数的用法
最新推荐文章于 2023-05-19 16:38:54 发布