
- SQL 教程
- SQL - 首頁
- SQL - 概述
- SQL - RDBMS 概念
- SQL - 資料庫
- SQL - 語法
- SQL - 資料型別
- SQL - 運算子
- SQL - 表示式
- SQL 資料庫
- SQL - 建立資料庫
- SQL - 刪除資料庫
- SQL - 選擇資料庫
- SQL - 重新命名資料庫
- SQL - 顯示資料庫
- SQL - 備份資料庫
- SQL 表
- SQL - 建立表
- SQL - 顯示錶
- SQL - 重命名錶
- SQL - 截斷表
- SQL - 克隆表
- SQL - 臨時表
- SQL - 修改表
- SQL - 刪除表
- SQL - 刪除表
- SQL - 約束
- SQL 查詢
- SQL - 插入查詢
- SQL - 選擇查詢
- SQL - Select Into
- SQL - Insert Into Select
- SQL - 更新查詢
- SQL - 刪除查詢
- SQL - 排序結果
- SQL 檢視
- SQL - 建立檢視
- SQL - 更新檢視
- SQL - 刪除檢視
- SQL - 重新命名檢視
- SQL 運算子和子句
- SQL - Where 子句
- SQL - Top 子句
- SQL - Distinct 子句
- SQL - Order By 子句
- SQL - Group By 子句
- SQL - Having 子句
- SQL - AND & OR
- SQL - 布林 (BIT) 運算子
- SQL - LIKE 運算子
- SQL - IN 運算子
- SQL - ANY, ALL 運算子
- SQL - EXISTS 運算子
- SQL - CASE
- SQL - NOT 運算子
- SQL - 不等於
- SQL - IS NULL
- SQL - IS NOT NULL
- SQL - NOT NULL
- SQL - BETWEEN 運算子
- SQL - UNION 運算子
- SQL - UNION 與 UNION ALL
- SQL - INTERSECT 運算子
- SQL - EXCEPT 運算子
- SQL - 別名
- SQL 連線
- SQL - 使用連線
- SQL - 內連線
- SQL - 左連線
- SQL - 右連線
- SQL - 交叉連線
- SQL - 全連線
- SQL - 自連線
- SQL - 刪除連線
- SQL - 更新連線
- SQL - 左連線與右連線
- SQL - Union 與 Join
- SQL 金鑰
- SQL - 唯一鍵
- SQL - 主鍵
- SQL - 外部索引鍵
- SQL - 複合鍵
- SQL - 備用鍵
- SQL 索引
- SQL - 索引
- SQL - 建立索引
- SQL - 刪除索引
- SQL - 顯示索引
- SQL - 唯一索引
- SQL - 叢集索引
- SQL - 非叢集索引
- 高階 SQL
- SQL - 萬用字元
- SQL - 註釋
- SQL - 注入
- SQL - 託管
- SQL - Min & Max
- SQL - 空函式
- SQL - 檢查約束
- SQL - 預設約束
- SQL - 儲存過程
- SQL - NULL 值
- SQL - 事務
- SQL - 子查詢
- SQL - 處理重複項
- SQL - 使用序列
- SQL - 自動遞增
- SQL - 日期和時間
- SQL - 遊標
- SQL - 公共表表達式
- SQL - Group By 與 Order By
- SQL - IN 與 EXISTS
- SQL - 資料庫調優
- SQL 函式參考
- SQL - 日期函式
- SQL - 字串函式
- SQL - 聚合函式
- SQL - 數值函式
- SQL - 文字和影像函式
- SQL - 統計函式
- SQL - 邏輯函式
- SQL - 遊標函式
- SQL - JSON 函式
- SQL - 轉換函式
- SQL - 資料型別函式
- SQL 有用資源
- SQL - 問答
- SQL - 快速指南
- SQL - 有用函式
- SQL - 有用資源
- SQL - 討論
SQL - NULLIF() 函式
SQL 的NULLIF() 函式用於驗證兩個表示式是否相等。
它接受兩個引數expr1 和expr2,如果兩個表示式相等,則返回NULL;否則返回第一個表示式。
注意 - 如果兩個表示式不相等,它始終返回第一個表示式,無論第一個表示式是否大於第二個表示式。
語法
以下是 SQL NULLIF() 函式的語法:
NULLIF(expr1, expr2);
引數
expr1 - 它是第一個表示式。
expr2 - 它是第二個表示式。
返回值
如果兩個表示式相等,則此函式返回NULL。
示例
如果兩個表示式相等,則NULLIF() 函式返回NULL 值。
以下 SQL NULLIF() 函式用於確定第一個表示式100 是否等於第二個表示式100。
SELECT NULLIF(100, 100) As Result;
輸出
以下是上述查詢的輸出:
+--------+ | Result | +--------+ | NULL | +--------+
示例
如果兩個表示式不同,則此函式返回第一個表示式。
在此示例中,我們使用 SQL NULLIF() 函式來驗證第一個表示式'50' 是否等於第二個表示式'30'。
SELECT NULLIF(50, 30) As Result;
輸出
執行上述語句後,將產生以下輸出:
+--------+ | Result | +--------+ | 50 | +--------+
示例
以下是 SQL NULLIF() 函式的另一個示例,這裡,我們使用此函式來比較兩個字串,它們是否相等。
DECLARE @EXPR1 VARCHAR(10) = 'HELLO', @EXPR2 VARCHAR(10) = 'HELLOWORLD'; SELECT NULLIF(@EXPR1, @EXPR2) AS RESULT;
輸出
以上 SQL 語句產生以下輸出:
+--------+ | Result | +--------+ | HELLO | +--------+
示例
如果我們將第一個表示式的值作為NULL 傳遞給函式,則此函式會丟擲錯誤。
在此程式中,我們將第一個表示式的值作為NULL 傳遞給NULLIF() 函式,以將其與第二個表示式20 進行比較。
SELECT NULLIF(NULL, 20) As Result;
輸出
執行上述查詢後,將產生以下輸出:
The type of the first argument to NULLIF cannot be the NULL constant because the type of the first argument has to be known.
示例
您還可以將表列作為引數傳遞給 SQL NULLIF() 函式,以檢查兩列的內容是否相等。假設我們使用CREATE 語句建立了一個名為Customer 的表,如下所示:
CREATE TABLE CUSTOMERS( ID INT NOT NULL, NAME VARCHAR (20) NOT NULL, AGE INT NOT NULL, ADDRESS CHAR (25) , SALARY DECIMAL (18, 2));
現在,讓我們使用INSERT 語句向Customers 表中插入一些記錄,如下所示:
INSERT INTO CUSTOMERS (ID,NAME,AGE,ADDRESS,SALARY) VALUES (1, 'Ramesh', 32, 'Ahmedabad', 2000.00 ); INSERT INTO CUSTOMERS (ID,NAME,AGE,ADDRESS,SALARY) VALUES (2, 'Khilan', 25, 'Delhi', 1500.00 ); INSERT INTO CUSTOMERS (ID,NAME,AGE,ADDRESS,SALARY) VALUES (3, 'kaushik', 23, 'Kota', 2000.00 ); INSERT INTO CUSTOMERS (ID,NAME,AGE,ADDRESS,SALARY) VALUES (4, 'Chaitali', 25, 'Mumbai', 6500.00 ); INSERT INTO CUSTOMERS (ID,NAME,AGE,ADDRESS,SALARY) VALUES (5, 'Ganesh', 32, 'Punjab', 2200.00 ); INSERT INTO CUSTOMERS (ID,NAME,AGE,ADDRESS,SALARY) VALUES (6, 'Rohan', 32, 'Delhi', 2250.00 );
以下 SQL 查詢檢查客戶Age(第一個表示式)是否等於指定的第二個表示式,如果相等,則返回NULL;否則返回Customers 表中第一個表示式(客戶年齡)。
SELECT ID, NAME, AGE, NULLIF(AGE, 32) AS RESULT FROM CUSTOMERS;
輸出
以上 SQL 查詢生成以下輸出:
+----+----------+-------+---------+ | ID | NAME | AGE | RESULT | +----+----------+-------+---------+ | 1 | Ramesh | 32 | NULL | | 2 | Khilan | 25 | 25 | | 3 | kaushik | 23 | 23 | | 4 | Chaitali | 25 | 25 | | 5 | Ganesh | 32 | NULL | | 6 | Rohan | 32 | NULL | +----+----------+-------+---------+