zoukankan      html  css  js  c++  java
  • oracle函数 总结

    1、union  --可以把两个不同的表的数据汇总到一个结果集中

    select id from stud1  union  select id from stud2;   --这样就会把stud1和stud2 的id都列出来,当然你就可以放到list去了。会自动排序,并且合并相同的记录。

     

    2、union all 

    作用跟union相同,但是不会自动排序,也不会合并相同记录。

     

    3、decode

    decode的语法:

    decode(value,if1,then1,if2,then2,if3,then3,...,else)

    表示如果value等于if1时,DECODE函数的结果返回then1,...,如果不等于任何一个if值,则返回else。

    select decode(sign(salary - 8000),1,salary*1.15,-1,salary*1.2,salary from employee;

    表示:salary大于8000 返回1.15倍,如果小于的话为1.2倍,否则返回salary的值。

     

    4、sign

    sign()函数根据某个值是0、正数还是负数,分别返回0、1、-1。

     

    5、nvl

    语法:NVL(eExpression1, eExpression2)

    如果 eExpression1 的计算结果为 null 值,则 NVL( ) 返回 eExpression2。如果 eExpression1 的计算结果不是 null 值,则返回 eExpression1。eExpression1 和 eExpression2 可以是任意一种数据类型。如果 eExpression1 与 eExpression2 的结果皆为 null 值,则 NVL( ) 返回 .NULL.。

     

    6.substr( string, start_position, [ length ] )
    取子字符串,从start_position开始,取length个,length为可选,如果length为空则返回start
    _position后的所有字符。
    例如: select substr('This is a test', 6, 2)  from dual;        would return 'is'。

    start_position为负数时,表示从字符串尾巴倒着数。

     

    7.oracle case when的用法

    SELECT col1, col2,
           CASE
              WHEN col3 > 1 AND col3 <2
                 THEN '1'
              WHEN col3 > 2 AND col3 <3
                 THEN '2'
              WHEN col3 > 3 AND col3 <4
                 THEN '3'
              ELSE '4'
           END mylevel
    FROM table1


    注意点:
    1、以CASE开头,以END结尾
    2、分支中WHEN 后跟条件,THEN为显示结果
    3、ELSE 为除此之外的默认情况,类似于高级语言程序中switch case的default,可以不加
    4、END 后跟别名

    8.INSTR

    INSTR方法的格式为
    INSTR(源字符串, 目标字符串, 起始位置, 匹配序号)

    例如:INSTR('CORPORATE FLOOR','OR', 3, 2)中,源字符串为'CORPORATE FLOOR', 目标字符串为'OR',起始位置为3,取第2个匹配项的位置。
    默认查找顺序为从左到右。当起始位置为负数的时候,从右边开始查找。

    所以SELECT INSTR('CORPORATE FLOOR', 'OR', -1, 1) "Instring" FROM DUAL的显示结果是
    Instring
    ——————
    14
  • 相关阅读:
    bzoj1297: [SCOI2009]迷路
    bzoj1875: [SDOI2009]HH去散步
    bzoj2466: [中山市选2009]树
    bzoj1770: [Usaco2009 Nov]lights 燈
    BZOJ 1965: [Ahoi2005]SHUFFLE 洗牌( 数论 )
    BZOJ 1004: [HNOI2008]Cards( 置换群 + burnside引理 + 背包dp + 乘法逆元 )
    BZOJ 1006: [HNOI2008]神奇的国度( MCS )
    BZOJ 1925: [Sdoi2010]地精部落( dp )
    BestCoder Round #57 (div.2)
    BZOJ 1216: [HNOI2003]操作系统( 优先队列 )
  • 原文地址:https://www.cnblogs.com/xhk1228/p/3194865.html
Copyright © 2011-2022 走看看