打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
Decode 函数的用法
作者:无从考证  来源:转载  发布时间:2005-9-21 16:23:18  发布人:admin
增大字体
在数据库开发的过程当中,有很多时候需要将行转换成列或者将列转换成行来显示数据,而往往我们在建立表结构时不能根据显示的要求来保存数据,于是乎只能在保存数据之后做一些必要的操作(比方说:建立视图等)来达到显示的目的。
下面用一个常见的数据显示来说明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
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
Oracle数据库日常运维常用脚本
Oracle维护常用SQL语句
Oracle日常性能查看
【转】ORACLE的sign函数 和 DECODE函数
oracle 函数
用ORACLE分析函数实现行列转换
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服