|
导读数据库,简而言之可视为电子化的文件柜——存储电子文件的处所,用户可以对文件中的数据进行新增、截取、更新、删除等操作。所谓“数据库”是以一定方式储存在一起、能与多个用户共享、具有尽可能小的冗余度、与应... 数据库,简而言之可视为电子化的文件柜——存储电子文件的处所,用户可以对文件中的数据进行新增、截取、更新、删除等操作。所谓“数据库”是以一定方式储存在一起、能与多个用户共享、具有尽可能小的冗余度、与应用程序彼此独立的数据集合。 在数据库开发的过程当中,有很多时候需要将行转换成列或者将列转换成行来显示数据,而往往我们在建立表结构时不能根据显示的要求来保存数据,于是乎只能在保存数据之后做一些必要的操作(比方说:建立视图等)来达到显示的目的。 下面用一个常见的数据显示来说明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 全新的路由器不仅让你更稳定快速地连接无线网络,更可以让家中的智能设备连接在一起。 |
温馨提示:喜欢本站的话,请收藏一下本站!