decode 函数的用法

decode|函数

       在数据库开发的过程当中,有很多时候需要将行转换成列或者将列转换成行来显示数据,而往往我们在建立表结构时不能根据显示的要求来保存数据,于是乎只能在保存数据之后做一些必要的操作(比方说:建立视图等)来达到显示的目的。

       下面用一个常见的数据显示来说明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     

时间: 2024-10-01 03:43:31

decode 函数的用法的相关文章

oracle中decode函数的用法

oracle函数库中提供了很多有用的函数,比如nvl,sign,round等,其中用得比较多的,功能比较大的还是decode这个函数.这个函数的用法如下: decode(表达式,条件1,结果1,条件2,结果2,...)中间有几个条件与结果根据个人而定,如 decode(sign(100-20),1,20,-1,100)意思是说当(100-20)大于零时,结果为20,而当(100-20)小于零时,结果为100,其中的sign只是一个判断符号的函数 假如要对一个企业的员工进行工资调整,对于3000块

Oracle DECODE函数语法使用介绍_oracle

Oracle DECODE函数功能很强,下面就为您详细介绍Oracle DECODE函数的用法,希望可以让您对Oracle DECODE函数有更多的了解. Oracle DECODE函数 Oracle DECODE函数是Oracle公司独家提供的功能,它是一个功能很强的函数.它虽然不是SQL的标准,但对于性能非常有用.到目前,其他的数据库供应商还不能提供类似DECODE的功能,甚至有的数据库的供应商批评Oracle的SQL不标准.实际上,这种批评有些片面或不够水平.就象有些马车制造商抱怨亨利.福

使用Oracle的Decode函数进行多值判断_oracle

Decode函数的语法结构如下: 复制代码 代码如下: decode (expression, search_1, result_1)decode (expression, search_1, result_1, search_2, result_2)decode (expression, search_1, result_1, search_2, result_2, ...., search_n, result_n) decode (expression, search_1, result_1

Oracle Decode()函数使用技巧分享_oracle

今天上头要求做一个类似的功能,初步想到的列转行,但是如何实现也没有什么好办法,这个函数不错 DECODE函数是ORACLE PL/SQL是功能强大的函数之一,目前还只有ORACLE公司的SQL提供了此函数,其他数据库厂商的SQL实现还没有此功能.DECODE有什么用途 呢? 先构造一个例子,假设我们想给智星职员加工资,其标准是:工资在8000元以下的将加20%:工资在8000元以上的加15%,通常的做法是,先选出记录 中的工资字段值? select salary into var-salary

oracle/plsql中decode()函数用法

在Oracle/ PLSQL的,DECODE函数有一个IF - THEN - ELSE语句的功能. DECODE函数的语法是: decode( expression , search , result [, search , result]... [, default] ) expression值进行比较. search 是对表达相比的价值. result是返回的值,如果表达式等于搜索. default 是可选的.如果没有找到匹配,解码将返回默认值.如果省略了默认,然后解码语句将返回null(如

php源码分析之DZX1.5加密解密函数authcode用法

  本文实例讲述了php源码分析之DZX1.5加密解密函数authcode用法.分享给大家供大家参考.具体分析如下: ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 <?php $authkey

php源码分析之DZX1.5加密解密函数authcode用法_php技巧

本文实例讲述了php源码分析之DZX1.5加密解密函数authcode用法.分享给大家供大家参考.具体分析如下: <?php $authkey = ''; /** * @param string $string: 输入的需要加密(或解密)的明文(或密文) * @param string $operation: 'DECODE'或其它,其中默认表示解密,输入其它表示加密 * @param string $key: 加解密密钥 * @param int $expiry: 有效期 */ functio

oracle中decode函数与abs、sign、trunc、substr函数的混合使用

decode()函数是ORACLE PL/SQL是功能强大的函数之一,目前还只有ORACLE公司的SQL提供了此函数,其他数据库厂商的SQL实现还没有此功能.(但其不是标准SQL函数,不过这也正是他的优点,其他数据库中提供不了如此强大的函数.) 功能: 1. 流程控制,相当于IF-THEN-ELSE功能.  用法如下:decode( expression , search , result [, search , result]... [, default] ) expression 要比较的表

SQL中 decode()函数简介_MsSql

DECODE函数,是ORACLE公司的SQL软件ORACLE PL/SQL所提供的特有函数计算方式,以其简洁的运算方式,可控的数据模型和灵活的格式转换而闻名. 今天看别人的SQL时看这里面还有decode()函数,以前从来没接触到,上网查了一下,还挺好用的一个函数,写下来希望对朋友们有帮助哈! decode()函数简介: 主要作用:将查询结果翻译成其他值(即以其他形式表现出来,以下举例说明): 使用方法: Select decode(columnname,值1,翻译值1,值2,翻译值2,...值