易截截图软件、单文件、免安装、纯绿色、仅160KB

ORACLE 中的DECODE函数

      昨天面试被问到了分段统计,我知道decode可以,面试官接着要我说decode的语法,没回答上来.从网上找的资料稍微改了一下.
DECODE函数是ORACLE PL/SQL是功能强大的函数之一,目前还只有ORACLE公司的SQL提供了此函数,其他数据库厂商的SQL实现还没有此功能。
      DECODE有什么用途呢? 先构造一个例子,假设我们想给职员加工资,其标准是:工资在8000元以下的将加20%;工资在8000元以上的加15%,8000元的不变.如果想先预览一下加工资后的结果可以用decode函数.如下:
      select decode(sign(salary - 8000),1,salary*1.15,-1,salary*1.2,salary) from employee 
DECODE的语法:DECODE(value,if1,then1,if2,then2,if3,then3,...,else),表示如果value等于if1时,DECODE函数的结果返回then1,...,如果不等于任何一个if值,则返回else。初看一下,DECODE 只能做等于测试,但刚才也看到了,我们通过一些函数或计算替代value,是可以使DECODE函数具备大于、小于或等于功能。
  decode()函数使用技巧
  ·软件环境:
  1、Windows NT4.0+ORACLE 8.0.4
  ·含义解释:
  decode(条件,值1,翻译值1,值2,翻译值2,...值n,翻译值n,缺省值)
  该函数的含义如下:
  IF 条件=值1 THEN
  RETURN(翻译值1)
  ELSIF 条件=值2 THEN
  RETURN(翻译值2)
  ......
  ELSIF 条件=值n THEN
  RETURN(翻译值n)
  ELSE
  RETURN(缺省值)
  END IF
  · 使用方法:
  1、比较大小
  select decode(sign(变量1-变量2),-1,变量1,变量2) from dual; --取较小值
  sign()函数根据某个值是0、正数还是负数,分别返回0、1、-1
  例如:
  变量1=10,变量2=20
  则sign(变量1-变量2)返回-1,decode解码结果为“变量1”,达到了取较小值的目的。
  2、表、视图结构转化
  现有一个商品销售表sale,表结构为:
  month    char(6)      --月份
  sell    number(10,2)   --月销售金额
  现有数据为:
  200001  1000
  200002  1100
  200003  1200
  200004  1300
&


相关文档:

ORACLE GROUPING_ID函数

可以使用GROUPING_ID函数借助HAVING子句对记录进行过滤,将不包含小计或者总计的记录除去。GROUPING_ID()函数可以接受一列或多列,返回GROUPING位向量的十进制值。GROUPING位向量的计算方法是将按照顺序对每一列调用GROUPING函数的结果组合起来。
关于GROUPING函数的使用方法可以参见我前面写的一篇文章
http://blog.csdn ......

oracle 时间差


 //计算毫秒差(两个date类型的相减为天数差别,然后转换为毫秒)
select ceil(to_date('209-11-17 13:00:12','yyyy-mm-dd hh24:mi-ss')-to_date(2009-11-18 14:00:12','yyyy-mm-dd hh24:mi-ss') )from dual;
//计算相差月份
select (EXTRACT(year from to_date('209-11-17','yyyy-mm-dd'))-EXTRACT(year from  ......

Oracle系统管理和系统资料获取的一些基本命令

资料获取自学习何明著作<<Oracle DBA 培训教程>>第二版之时.其中dba_开头的表需要有sysdba权限才能访问.
1. 获取数据库名字,创建日期,当前模式,日志模式等等:
SELECT name,created,log_mode,open_mode from v$database;
2. 获取运行实例的主机名,实例名,版本:
SELECT host_name,instance_name,ve ......

oracle 11g 透明网关连接mssql 2005报错???

通过oracle 11g 连接mssql 2005 报下面的错误
select * from maintanance@mssql
*
第 1 行出现错误:
ORA-28545: 连接代理时 Net8 诊断到错误
Unable to retrieve text of NETWORK/NCR message 65535
ORA-02063: 紧接着 2 lines (起自 MSSQL)
oracle 11g listener.ora配置如下:
# listener.ora Network Configurati ......

ORACLE JOB间隔时间参考

 
关键字: oracle job 间隔时间 trunc
假设你的存储过程名为PROC_RAIN_JM
再写一个存储过程名为PROC_JOB_RAIN_JM
内容是:
Create Or Replace Procedure PROC_JOB_RAIN_JM   Is   li_jobno         Number;  &nb ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号