Decode 函数的用法
程序员文章站
2022-06-03 21:18:27
...
在数据库开发的过程当中,有很多时候需要将行转换成列或者将列转换成行来显示数据,而往往我们在建立表结构时不能根据显示的要求来保存数据,于是乎只能在保存数据之后做一些必要的操作(比方说:建立视图等)来达到显示的目的。 下面用一个常见的数据显示来
在开发的过程当中,有很多时候需要将行转换成列或者将列转换成行来显示数据,而往往我们在建立表结构时不能根据显示的要求来保存数据,于是乎只能在保存数据之后做一些必要的操作(比方说:建立视图等)来达到显示的目的。下面用一个常见的数据显示来说明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
推荐阅读
-
jsonobject判断key是否存在某个key(java的foreach用法)
-
AE空物体在哪儿? AE中空物体的用法
-
linux命令之find命令的12个常用参数详解(含具体用法和注意事项)
-
PHP is_subclass_of函数的一个BUG和解决方法
-
Linux tcpdump命令的用法详解(内容较多)
-
Python中的异常处理try/except/finally/raise用法分析
-
Python enumerate函数功能与用法示例
-
oracle求同比,环比函数(LAG与LEAD)的详解
-
Oracle中 关于数据库存储过程和存储函数的使用
-
Oracle Decode()函数使用技巧分享