- カテゴリ:
NVL¶
expr1
が NULL の場合は、 expr2
を返します。それ以外の場合は expr1
を返します。
- エイリアス:
構文¶
NVL( <expr1> , <expr2> )
引数¶
expr1
一般的な式です。
expr2
一般的な式です。
使用上の注意¶
可能であれば、同じ型の引数を渡します。異なる型の引数を渡すことは避けます。
引数の1つが数値の場合、関数は、非数値文字列引数(例:
'a string'
)と型 NUMBER(18,5)の定数ではない文字列引数を 強制 します。定数ではない数値文字列引数で、 NUMBER(18,5)が数値を表すのに十分でない場合は、値を表すことができる型に引数を キャスト する必要があります。
どちらの式にも
UNION
、INTERSECT
、EXCEPT
、MINUS
などの集合演算子を含むSELECT
ステートメントを含めることができます。セット演算子を使用する場合は、データ型に互換性があることを確認してください。詳細については、 集合演算子 トピックの 一般的な使用上の注意 をご参照ください。
照合の詳細¶
The collation specifications of all input arguments must be compatible.
The collation of the result of the function is the highest-precedence collation of the inputs.
戻り値¶
戻り式のデータ型を返します。
両方の式が NULL の場合は、 NULL を返します。
例¶
サプライヤーの連絡先情報を含むテーブルを作成します。
CREATE TABLE IF NOT EXISTS suppliers (
supplier_id INT PRIMARY KEY,
supplier_name VARCHAR(30),
phone_region_1 VARCHAR(15),
phone_region_2 VARCHAR(15));
このテーブルには、2つの異なるリージョンの各サプライヤーの電話番号が含まれています。電話番号は、リージョンで NULL にすることもできます。
テーブルに値を挿入します。
INSERT INTO suppliers(supplier_id, supplier_name, phone_region_1, phone_region_2)
VALUES(1, 'Company_ABC', NULL, '555-01111'),
(2, 'Company_DEF', '555-01222', NULL),
(3, 'Company_HIJ', '555-01333', '555-01444'),
(4, 'Company_KLM', NULL, NULL);
次の SELECT ステートメントは、 NVL 関数を使用して phone_region_1
と phone_region_2
の値を取得します。
この例では、 NVL 関数で以下の結果を示しています。
IF_REGION_1_NULL
列には、phone_region_1
の値、またはその値が NULL の場合はphone_region_2
の値が格納されます。IF_REGION_2_NULL
列には、phone_region_2
の値、またはその値が NULL の場合はphone_region_1
の値が格納されます。phone_region_1
とphone_region_2
の両方が NULL の場合、この関数は NULL を返します。
SELECT supplier_id,
supplier_name,
phone_region_1,
phone_region_2,
NVL(phone_region_1, phone_region_2) IF_REGION_1_NULL,
NVL(phone_region_2, phone_region_1) IF_REGION_2_NULL
FROM suppliers
ORDER BY supplier_id;
+-------------+---------------+----------------+----------------+------------------+------------------+
| SUPPLIER_ID | SUPPLIER_NAME | PHONE_REGION_1 | PHONE_REGION_2 | IF_REGION_1_NULL | IF_REGION_2_NULL |
|-------------+---------------+----------------+----------------+------------------+------------------|
| 1 | Company_ABC | NULL | 555-01111 | 555-01111 | 555-01111 |
| 2 | Company_DEF | 555-01222 | NULL | 555-01222 | 555-01222 |
| 3 | Company_HIJ | 555-01333 | 555-01444 | 555-01333 | 555-01444 |
| 4 | Company_KLM | NULL | NULL | NULL | NULL |
+-------------+---------------+----------------+----------------+------------------+------------------+