説明
この関数は、パラメータリスト内の最初のNULLではない式を返します。少なくとも2つのパラメータを指定する必要があります。
構文
COALESCE (expr [, expr]...)
パラメータの説明
expr は、数値データ型(NUMBER、FLOAT、BINARY_FLOAT または BINARY_DOUBLE)または文字データ型(CHAR、VARCHAR2、NCHAR または NVARCHAR2)の値または式です。
説明
パラメータリスト内の値は、NULLではない式であることに加えて、データ型も一致している必要があります。
戻り値のタイプ
戻り値のタイプは、パラメータリスト内の最初のNULLではない式
exprのデータ型と同じです。すべてのパラメータが
NULLの場合、NULLを返します。
例
テーブル tbl1 を作成します。product_id は商品ID、list_price は商品の原価格、min_price は商品の最低価格、Sale は商品の実際の販売価格です。商品の割引率を 8 割に設定し、各商品の実際の販売価格を計算します。この場合、COALESCE 関数を使用できます。list_price がNULLの場合は最低価格 min_price で計算し、min_price もNULLの場合は 10 で計算します。
obclient> CREATE TABLE tbl1(supplier_id INT, product_id INT,list_price NUMERIC,min_price NUMERIC);
Query OK, 0 rows affected
obclient> INSERT INTO tbl1 VALUES ('102050', '1659', '45', NULL),('102050', '1770', NULL, '70'),
('102050', '2370', '305', '247'),('102050', '2380', '750', '731'),('102050', '3255', NULL, NULL);
Query OK, 5 rows affected
Records: 5 Duplicates: 0 Warnings: 0
obclient> SELECT product_id, list_price,min_price,COALESCE(0.8*list_price, min_price, 10) "Sale" FROM tbl1;
+------------+------------+-----------+------+
| PRODUCT_ID | LIST_PRICE | MIN_PRICE | Sale |
+------------+------------+-----------+------+
| 1659 | 45 | NULL | 36 |
| 1770 | NULL | 70 | 70 |
| 2370 | 305 | 247 | 244 |
| 2380 | 750 | 731 | 600 |
| 3255 | NULL | NULL | 10 |
+------------+------------+-----------+------+
5 rows in set