在 SQL 中,不為空運算符是邏輯運算符。它的應用正好與IS NULL 運算符相反。與 IS NULL 運算符不同,該運算符返回真的,如果該值不是 NULL 值。它通常與 WHERE 子句一起使用來過濾表數據。它過濾掉數據並將其與指定列具有的記錄分開NULL值。由於這個原因,它在數據可視化中起著至關重要的作用。
在這篇文章中,我們將學習各種應用不為空運算符及其各自的解釋和示例。我們將涵蓋 IS NOT NULL 運算符的所有用例。我們將看到如何在一些常見場景中明智地使用這個運算符。我們還將探討如何使用其他 SQL 函數來實現此運算符。
SQL IS NOT NULL 運算符
SQL 不為空運算符是邏輯運算符。我們使用此運算符來檢查行在特定列中是否具有非空值。簡而言之,我們使用此運算符來檢測 NOT NULL 值。如果檢查列的特定行具有 NULL 值,則此運算符將返回FALSE。該運算符的作用與 SQL 中的 IS NULL 運算符相反。該運算符通常作用於 WHERE 子句。簡而言之,我們使用 IS NOT NULL 運算符來選擇那些存在一些數據的行。
用法:
SELECT *
FROM table_name
WHERE column_name IS NOT NULL;
IS NOT NULL 運算符示例
在開始示例之前,首先,我們需要在數據庫中創建一個表。讓我們在數據庫中創建一個表
表名:極客之極客
列:姓名、級別、課程
詢問:
CREATE TABLE geeksforgeeks(
id varchar(100) PRIMARY KEY,
name varchar(100),
rank int,
courses int
);
讓我們在表中插入一些值並顯示它們。
詢問:
INSERT INTO geeksforgeeks(id,name,rank,courses)
VALUES('vishu01','Vishu',01,10);
INSERT INTO geeksforgeeks(id,name,rank,courses)
VALUES('sumit02','sumit',02,NULL);
INSERT INTO geeksforgeeks(id,name,rank,courses)
VALUES('neeraj03','Neeraj',NULL,08);
INSERT INTO geeksforgeeks(id,name,rank,courses)
VALUES('aayush04','Aayush',03,NULL);
INSERT INTO geeksforgeeks(id,name,rank,courses)
VALUES('vivek05','Vivek',04,06);
INSERT INTO geeksforgeeks(id,name,rank,courses)
VALUES('harsh06','Harsh',NULL,05);
INSERT INTO geeksforgeeks(id,name,rank,courses)
VALUES('raaj07','Raaj',05,NULL);
--Displaying Data
SELECT * FROM geeksforgeeks;
輸出:
表格 - geeksforgeeks
我們創建了一個表並向其中插入了虛擬數據。現在讓我們開始實施IS NOT NULL 運算符。
示例 1:使用 SELECT 語句時 IS NOT NULL
讓我們顯示課程列包含除 a 之外的值的所有記錄NULL值。
詢問:
SELECT * FROM geeksforgeeks
WHERE courses IS NOT NULL;
輸出:
輸出 - 01
我們可以觀察到,顯示的所有記錄中的課程都包含除 NULL 值之外的某些整數值。
NOTE: We applied IS NOT NULL Operator on courses column. Therefore it only filters out NOT NULL values from courses column , not from the other columns, like rank.
示例 2:COUNT() 為 IS NOT NULL
在此示例中,我們將計算記錄中的 NOT NULL 值,其中記錄的兩個列(即排名和課程)中都包含 NOT NULL。
詢問:
SELECT count(*) as non_empty_records FROM geeksforgeeks
WHERE courses IS NOT NULL and rank IS NOT NULL;
輸出:
輸出 - 2.1
我們可以清楚地發現隻有兩行,這兩列(即課程和排名)都保存 NOT NULL 值。我們也可以通過以下查詢簡單地顯示這些記錄。
詢問:
SELECT * FROM geeksforgeeks
WHERE courses IS NOT NULL and rank IS NOT NULL;
輸出:
輸出 - 2.2
因此,這是唯一在兩個列(即課程和排名)中都保存 NOT NULL 值的記錄。
示例 3:帶有 UPDATE 語句的 IS NOT NULL
假設我們必須將每個成員的等級加 1。現在在這種情況下,將 NULL 值加 1 是沒有意義的。因此我們必須避免 NULL 值。在此示例中,我們也將使用 UPDATE 語句。
詢問:
UPDATE geeksforgeeks
SET rank = rank + 1
WHERE rank IS NOT NULL;
輸出:
輸出 - 03
我們可以發現排名列的先前表值和排名列的當前表值之間的差異。我們可以看到 NOT NULL 列的排名增加了 1。
示例 4:帶有 DELETE 語句的 IS NOT NULL
讓我們從表中刪除課程列具有以下內容的所有記錄NULL值。在此示例中,我們將使用DELETE聲明也。
詢問:
DELETE FROM geeksforgeeks
WHERE courses IS NOT NULL;
輸出:
輸出 - 04
從上圖中,我們可以得出結論,courses 列的所有 NOT NULL 值都被刪除。因此,隻剩下三個記錄,其中課程列具有 NULL 值。
結論
IS NOT NULL 運算符是 SQL 中的邏輯運算符。該運算符用於過濾掉表數據。這意味著 IS NOT NULL 運算符用於分隔表的 NULL 值和 NOT NULL 值。在處理數據可視化時,這非常有用。簡而言之,它的作用與IS NULL。我們可以借助該運算符過濾掉 NOT NULL 值。在本文中,我們看到了 IS NOT NULL 運算符的簡要用例,其中包含清晰簡潔的示例及其各自的解釋。
相關用法
- SQL IS NULL用法及代碼示例
- SQL IN用法及代碼示例
- SQL Datetime轉Date用法及代碼示例
- SQL Date轉Datetime用法及代碼示例
- SQL NUMERIC轉NVARCHAR用法及代碼示例
- SQL LTRIM()用法及代碼示例
- SQL UPPER()用法及代碼示例
- SQL RTRIM()用法及代碼示例
- SQL FLOAT轉NVARCHAR用法及代碼示例
- SQL Datetime轉Epoch用法及代碼示例
- SQL Epoch Time轉Date用法及代碼示例
- SQL Datetime轉String用法及代碼示例
- SQL VARCHAR轉INT用法及代碼示例
- SQL NOT用法及代碼示例
- SQL NOT EQUAL用法及代碼示例
- SQL LIKE用法及代碼示例
- SQL DROP和TRUNCATE的區別用法及代碼示例
- SQL Server CHARINDEX()用法及代碼示例
- SQL Server DIFFERENCE()用法及代碼示例
- SQL Server IIF()用法及代碼示例
- SQL Server ASCII()用法及代碼示例
- SQL Server LOG()用法及代碼示例
- SQL Server LOG10()用法及代碼示例
- SQL Server ATN2()用法及代碼示例
注:本文由純淨天空篩選整理自vishuvaishnav3001大神的英文原創作品 SQL IS NOT NULL Operator。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。