説明
この関数は、引数リストの最初の非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 が空の場合、最低価格 min_price で計算します。min_price も空の場合は、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