zoukankan      html  css  js  c++  java
  • oracle中几个函数

    1.NVL
    NVL (E1, E2) 的功能为:如果E1为NULL,则函数返回E2,否则返回E1本身。
    但此函数有一定局限,所以就有了NVL2函数。
    拓展:NVL2函数 : Oracle / PLSQL中的一个函数,
    Oracle在NVL函数的功能上扩展,提供了NVL2函数。
    NVL2 (E1, E2, E3) 的功能为:如果E1为NULL,则函数返回E3,若E1不为null,则返回E2。

    此NVL的作用与SQLserver 中的 ISNULL( string1, replace_with) 一样。
    注意:
    string1和replace_with必须为同一数据类型,除非显式的使用TO_CHAR函数。

    例:nvl(yanlei777,0) > 0
    NVL(yanlei777, 0) 的意思是 如果 yanlei777 是NULL, 则取 0值

    2.DECODE(value, if1, then1, if2,then2, if3,then3, . . . else ),V
    alue 代表某个表的任何类型的任意列或一个通过计算所得的任何结果。
    当每个value值被测试,如果value的值为if1,Decode 函数的结果是then1;
    如果value等于if2,Decode函数结果是then2;等等。
    事实上,可以给出多个if/then 配对。
    如果value结果不等于给出的任何配对时,Decode 结果就返回else 。
    需要注意的是,这里的if、then及else 都可以是函数或计算表达式。

    3.case when语句类似于C#语法中的if else语法,
    比如:select case when id > 0 then 1 else 0 end as flag from table1,
    这句sql就表示 筛选所有table1中的记录,当id大于0时,
    新的flag列就为1,否则,flag列为0

    round( case when ttl = 0 then 0 when round(ttls/8,0) = 0 then 0 else ttl/round(ttls/8,0) end,2) as wos
    4.START WITH CONNECT BY PRIOR子句实现递归查询
    START WITH t.PARENT_ID = '0' CONNECT BY PRIOR t.ID = t.PARENT_ID

    select num1,num2,level
    from carol_tmp
    start with num2=1008
    connect by num2 = prior num1 order by level desc;

    prior放的左右位置决定了检索是自底向上还是自顶向下.很明显以上的sql选择了自底向上,所以最终得到了根节点。

  • 相关阅读:
    Android ViewGroup使用小结
    背包问题
    u3d demo起步第二章
    三国武将查询系统 //Java 訪问 数据库
    全端project师必备技能汇总
    记一次内存泄漏调试(memory leak)-Driver Monkey
    备战软考(4) 软考下午题攻略
    HDU1392:Surround the Trees(凸包问题)
    Nginx系列(二)--模块化
    《与古为徒与娟娟发屋》:书法家们刻意回避的一个问题:为什么推崇古代平民的作品而忽略当代平民的作品。4星。
  • 原文地址:https://www.cnblogs.com/zhangzack/p/9479518.html
Copyright © 2011-2022 走看看