• COALESCE NVL NVL2 DECODE


    1 COALESCE

    語法:COALESCE(expr1, expr2, ..., exprn) n>=2

    作用:COALESCE returns the first non-null expr in the expression list. You must specify at least
    two expressions. If all occurrences of expr evaluate to null, then the function returns
    null.

    COALESCE用於返回第一個非空的表達式.表達式只是兩個.如果所有的表達式為null,則返回null.

    COALESCE(expr1, expr2)等價于 CASE WHEN expr1 IS NOT NULL THEN expr1 ELSE expr2 END

    例子:

    SELECT product_id, list_price, min_price,
                COALESCE(0.9*list_price, min_price, 5) "Sale"
      FROM product_information
      WHERE supplier_id = 102050
      ORDER BY product_id;

    2 NVL

    語法:NVL(expr1,expr2)

    NVL lets you replace null (returned as a blank) with a string in the results of a query. If
    expr1 is null, then NVL returns expr2. If expr1 is not null, then NVL returns expr1.

    NVL 如果expr1為空,則返回expr2,不為空,就返回expr1.

    例子:

    SELECT last_name, NVL(TO_CHAR(commission_pct), 'Not Applicable') commission
        FROM employees
        WHERE last_name LIKE 'B%'
        ORDER BY last_name;

    3 NVL2

    語法:NVL2(expr1,expr2,expr3)

    作用:NVL2 lets you determine the value returned by a query based on whether a specified
    expression is null or not null. If expr1 is not null, then NVL2 returns expr2. If expr1 is
    null, then NVL2 returns expr3.

    如果expr1的值為空,則返回expr2,不為空則返回expr3.

    SELECT last_name, salary,
                NVL2(commission_pct, salary + (salary * commission_pct), salary) income
      FROM employees
      WHERE last_name like 'B%'
      ORDER BY last_name;

    4 DECODE

    語法:DECODE(expr,search1,result1,search2,result2...searchN,resultN,default)

    作用:DECODE compares expr to each search value one by one. If expr is equal to a search,
    then Oracle Database returns the corresponding result. If no match is found, then
    Oracle returns default. If default is omitted, then Oracle returns null.

    比較expr和search的值,如果相等,則返回result,否則返回default.

    就是說如果expr等於search1,則返回result1的值,等於search2,則返回result2...如果都不滿足就返回default值.

    例子:

    SELECT product_id,
    DECODE (warehouse_id, 1, 'Southlake',
                                        2, 'San Francisco',
                                        3, 'New Jersey',
                                        4, 'Seattle',
                                           'Non domestic') "Location"
    FROM inventories
    WHERE product_id < 1775
    ORDER BY product_id, "Location";

    不必太糾結于當下,也不必太憂慮未來
  • 相关阅读:
    在GDI+中如何实现以左下角为原点的笛卡尔坐标系
    html中内联元素和块元素的区别、用法以及联系
    HttpClient超时设置
    springMVC实现文件上传
    IDEA生成serialVersionUID的警告
    java中两个字符串如何比较大小
    gerrit简版教程
    mysql中OPTIMIZE TABLE的作用及使用
    mysql慢查询日志分析
    checkStype和findBugs校验
  • 原文地址:https://www.cnblogs.com/guilingyang/p/5368352.html
Copyright © 2020-2023  润新知