OceanBase COALESCE

2021-06-24 10:35 更新

COALESCE 函數(shù)返回參數(shù)列表中第一個非空表達(dá)式,必須指定最少兩個參數(shù)。

語法

COALESCE(expr1, expr2[,…, exprn])

參數(shù)

參數(shù)

說明

expr1, expr2[,…, exprn]

非空表達(dá)式,且最少 2 個。

返回類型

返回參數(shù)列表中第一個非空表達(dá)式,如果所有的參數(shù)都是 NULL,則返回 NULL。

示例

假設(shè)有一張表 product_information,product_id 為商品 ID,list_price 為該商品原價,min_price 為商品最低價,Sale 為商品實(shí)際售價。設(shè)置商品折扣為 9 折,計(jì)算各商品的實(shí)際售價。此時可使用 COALESCE 函數(shù),若 list_price 為空,就按最低價 min_price 計(jì)算;若 min_price 也為空,則按 5 計(jì)算。

您可以執(zhí)行以下語句,建立 product_information 數(shù)據(jù)表,并插入數(shù)據(jù):

CREATE TABLE product_information(supplier_id INT, product_id INT,list_price numeric, min_price numeric);
INSERT INTO PRODUCT_INFORMATION VALUES ('102050', '1659', '45', NULL);
INSERT INTO PRODUCT_INFORMATION VALUES ('102050', '1770', NULL, '70');
INSERT INTO PRODUCT_INFORMATION VALUES ('102050', '2370', '305', '247');
INSERT INTO PRODUCT_INFORMATION VALUES ('102050', '2380', '750', '731');
INSERT INTO PRODUCT_INFORMATION VALUES ('102050', '3255', NULL, NULL);

執(zhí)行以下查詢語句:

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;

查詢結(jié)果如下:

+--------------+--------------+------------+--------+
|  PRODUCT_ID  |  LIST_PRICE  |  MIN_PRICE |  Sale  |
+--------------+--------------+------------+--------+
|        1659  |       45     |            |  40.5  |
+--------------+--------------+------------+--------+
|        1770  |              |     70     |    70  |
+--------------+--------------+------------+--------+
|        2370  |      305     |    247     | 274.5  |
+--------------+--------------+------------+--------+
|        2380  |      750     |    731     |   675  |
+--------------+--------------+------------+--------+
|        3255  |              |            |     5  |
+--------------+--------------+------------+--------+
以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號