OceanBase NVL

2021-06-24 10:54 更新

NVL 函數(shù)從兩個(gè)表達(dá)式返回一個(gè)非 NULL 值。如果 expr1 與 expr2 的結(jié)果皆為 NULL 值,則 NVL 函數(shù)返回 NULL。

語法

NVL(expr1, expr2)

參數(shù)

參數(shù)

說明

expr1

表達(dá)式。數(shù)據(jù)類型可以是 OceanBase 內(nèi)建數(shù)據(jù)類型 中的任何數(shù)據(jù)類型。

expr2

表達(dá)式。數(shù)據(jù)類型可以是 OceanBase 內(nèi)建數(shù)據(jù)類型中的任何數(shù)據(jù)類型。

expr1 和 expr2 必須是相同類型,或者可以隱式轉(zhuǎn)換為相同類型。如果它們不能隱式轉(zhuǎn)換,則 OceanBase 返回錯(cuò)誤。隱式轉(zhuǎn)換實(shí)現(xiàn)如下:

  • 如果 expr1 是 CHAR、NCHAR、NVARCHAR、VARCHAR2 或 VARCHAR 字符型數(shù)據(jù),則 OceanBase 在比較 expr1 之前將 expr2 轉(zhuǎn)換為 expr1 的數(shù)據(jù)類型,并返回 expr1 字符集的 VARCHAR2。

  • 如果 expr1 是 NUMBERFLOAT、BINARY_FLOAT 或 BINARY_DOUBLE 數(shù)值型數(shù)據(jù),則 OceanBase 確定哪個(gè)參數(shù)具有最高的數(shù)字優(yōu)先級(jí),隱式地將另一個(gè)參數(shù)轉(zhuǎn)換為該數(shù)據(jù)類型,并返回該數(shù)據(jù)類型。

返回類型

如果 expr1expr2 是 NULL,則返回 NULL。如果 expr1 是 CHAR、NCHAR、NVARCHAR、VARCHAR2 或 VARCHAR 字符型數(shù)據(jù),則返回 expr1 字符集的 VARCHAR2。如果 expr1 是 NUMBER、FLOAT、BINARY_FLOAT 或 BINARY_DOUBLE 數(shù)值型數(shù)據(jù),則返回 expr1 中具有最高數(shù)字優(yōu)先級(jí)的數(shù)據(jù)類型。

示例

假設(shè)有一張表 EMPLOYEES,給員工姓名列 name 和傭金列 commission_pct 里面插入數(shù)據(jù),執(zhí)行以下語句:

CREATE TABLE EMPLOYEES (name VARCHAR(20),commission_pct float(5));
INSERT INTO EMPLOYEEs VALUES ('Baer', null);
INSERT INTO EMPLOYEEs VALUES ('Bada', null);
INSERT INTO EMPLOYEEs VALUES ('Boll', 0.1);
INSERT INTO EMPLOYEEs VALUES ('Bates', 0.15);
INSERT INTO EMPLOYEEs VALUES ('Eric', null);

查詢員工的姓名和傭金,如果員工沒有收到傭金,則顯示 Not Applicable。執(zhí)行以下語句:

SELECT name, NVL(TO_CHAR(commission_pct), 'Not Applicable') commission 
FROM employees WHERE name LIKE 'B%' ORDER BY name;

查詢結(jié)果如下:

+--------------+----------------+
|        NAME  |     COMMISSION |
+--------------+----------------+
|        Baer  | Not Applicable |
+--------------+----------------+
|        Bada  | Not Applicable |
+--------------+----------------+
|        Boll  |             .1 |
+--------------+----------------+
|       Bates  |            .15 |
+--------------+----------------+
以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)