新聞中心
NVL2 函數(shù)根據(jù)表達式是否為空,返回不同的值。如果 expr1 不為空,則返回 expr2 的值,如果 expr1 為空,則返回 expr3 的值。expr2 和 expr3 類型不同的話,expr3 會轉(zhuǎn)換為 expr1 的類型。

創(chuàng)新互聯(lián)建站專注為客戶提供全方位的互聯(lián)網(wǎng)綜合服務(wù),包含不限于網(wǎng)站設(shè)計、做網(wǎng)站、寶山網(wǎng)絡(luò)推廣、小程序定制開發(fā)、寶山網(wǎng)絡(luò)營銷、寶山企業(yè)策劃、寶山品牌公關(guān)、搜索引擎seo、人物專訪、企業(yè)宣傳片、企業(yè)代運營等,從售前售中售后,我們都將竭誠為您服務(wù),您的肯定,是我們最大的嘉獎;創(chuàng)新互聯(lián)建站為所有大學(xué)生創(chuàng)業(yè)者提供寶山建站搭建服務(wù),24小時服務(wù)熱線:028-86922220,官方網(wǎng)址:www.cdcxhl.com
語法
NVL2(expr1, expr2, expr3)參數(shù)
|
參數(shù) |
說明 |
|---|---|
|
expr1 |
表達式。數(shù)據(jù)類型可以是 OceanBase 內(nèi)建數(shù)據(jù)類型 中的任何數(shù)據(jù)類型。 |
|
expr2 |
表達式。數(shù)據(jù)類型可以是 OceanBase 內(nèi)建數(shù)據(jù)類型中的任何數(shù)據(jù)類型。 |
|
expr3 |
表達式。數(shù)據(jù)類型可以是 OceanBase 內(nèi)建數(shù)據(jù)類型中的任何數(shù)據(jù)類型。 |
如果 expr2 和 expr3 的數(shù)據(jù)類型不同,則 OceanBase 將其中一個隱式轉(zhuǎn)換為另一個。 如果它們不能隱式轉(zhuǎn)換,則數(shù)據(jù)庫返回錯誤。 如果 expr2 是字符或數(shù)字?jǐn)?shù)據(jù),則隱式轉(zhuǎn)換規(guī)則如下:
-
如果
expr2是CHAR、NCHAR、NVARCHAR、VARCHAR2或VARCHAR字符型數(shù)據(jù),則 OceanBase 在返回值之前將expr3轉(zhuǎn)換為expr2的數(shù)據(jù)類型,除非expr3是NULL。 在這種情況下,不需要數(shù)據(jù)類型轉(zhuǎn)換,數(shù)據(jù)庫返回expr2字符集的VARCHAR2。 -
如果
expr2是NUMBER、FLOAT、BINARY_FLOAT或BINARY_DOUBL數(shù)值型數(shù)據(jù),則 OceanBase 確定哪個參數(shù)具有最高的數(shù)值優(yōu)先級,隱式地將另一個參數(shù)轉(zhuǎn)換為該數(shù)據(jù)類型,并返回該數(shù)據(jù)類型。
返回類型
如果 expr1、expr2 是 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)先級的數(shù)據(jù)類型。
示例
假設(shè)有一張表 EMPLOYEES,給員工姓名列 name、薪資列 salary 和傭金列 commission_pct 里面插入數(shù)據(jù),執(zhí)行以下語句:
CREATE TABLE EMPLOYEES (name VARCHAR(20),salary VARCHAR(20),commission_pct numeric(10,2));
INSERT INTO EMPLOYEEs VALUES ('Baer', 10000, null);
INSERT INTO EMPLOYEEs VALUES ('Bada', 2800, null);
INSERT INTO EMPLOYEEs VALUES ('Boll', 5600, .25);
INSERT INTO EMPLOYEEs VALUES ('Bates', 7300, .39);
INSERT INTO EMPLOYEEs VALUES ('Broll', 4000, null);使用 NVL2 函數(shù)查詢員工的總收入。如果員工的 commission_pct 列不為空,則員工的收入為工資加傭金,否則,收入僅僅為工資。執(zhí)行以下語句:
SELECT name, salary,NVL2(commission_pct, salary + (salary * commission_pct), salary) income
FROM employees WHERE name like 'B%' ORDER BY name;查詢結(jié)果如下:
+-------+--------+--------+
| NAME | SALARY | INCOME |
+-------+--------+--------+
| Bada | 2800 | 2800 |
| Baer | 10000 | 10000 |
| Bates | 7300 | 10147 |
| Boll | 5600 | 7000 |
| Broll | 4000 | 4000 |
+-------+--------+--------+
5 rows in set (0.02 sec) 當(dāng)前名稱:創(chuàng)新互聯(lián)OceanBase教程:OceanBaseNVL2
轉(zhuǎn)載來于:http://www.5511xx.com/article/dhcjjjc.html


咨詢
建站咨詢
