oracle--函数COALESCE

    技术2025-12-21  6

    COALESCE

    语法

    COALESCE(expr1, expr2...exprn)

    解释

    COALESCE返回参数列表中第一个非空表达式。必须指定最少两个参数。如果所有的参数都是null,则返回null。 Oracle使用短路运算,它依次对每个表达式求值判断它是否为空,而不是对所有表达式都求值后在判断第一个非空值。 COALESCE函数是NVL函数的一个扩展。 可以使用COALESCE函数替换一个类ASE语句,例:

    COALESCE(expr1, expr2)

    等价于

    CASE WHEN expr1 IS NOT NULL THEN expr1 ELSE expr2 END

    同样的

    COALESCE(expr1, expr2, ..., exprn)

    当n>=3时等价于

    CASE WHEN expr1 IS NOT NULL THEN expr1 ELSE COALESCE (expr2, ..., exprn) END

    例子

    下面的例子给所有的产品按list_price打9折,如果没有list_price,就按最低价MIN_PRICE算。 如果也没有MIN_PRICE,那么sale就是5.

    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; PRODUCT_ID LIST_PRICE MIN_PRICE Sale ---------- ---------- ---------- ---------- 1769 48 43.2 1770 73 73 2378 305 247 274.5 2382 850 731 765 3355 5
    最新回复(0)