SQL - 不等於



SQL 不等於運算子

SQL 的不等於運算子用於比較兩個值,如果它們不相等則返回 true。它由"<>""!="表示。這兩者之間的區別在於 <> 遵循 ISO 標準,但 != 則不遵循。因此,建議使用 <> 運算子。

我們可以在 WHERE 子句中使用 NOT EQUAL 運算子根據特定條件過濾記錄,並在 GROUP BY 子句中對結果進行分組。

在使用 NOT EQUAL 運算子處理文字值時,預設情況下比較區分大小寫。

語法

以下是 SQL 中 NOT EQUAL 運算子的語法:

WHERE expression1 <> expression2;

示例

為了更好地理解它,讓我們考慮 CUSTOMERS 表,其中包含客戶的個人詳細資訊,包括他們的姓名、年齡、地址和薪水等,如下所示:

CREATE TABLE CUSTOMERS(
   ID   INT              NOT NULL,
   NAME VARCHAR (20)     NOT NULL,
   AGE  INT              NOT NULL,
   ADDRESS  CHAR (25) ,
   SALARY   DECIMAL (18, 2),
   PRIMARY KEY (ID)
); 

現在,使用 INSERT 語句將值插入此表,如下所示:

INSERT INTO CUSTOMERS VALUES 
(1, 'Ramesh', 32, 'Ahmedabad', 2000.00 ),
(2, 'Khilan', 25, 'Delhi', 1500.00 ),
(3, 'Kaushik', 23, 'Kota', 2000.00 ),
(4, 'Chaitali', 25, 'Mumbai', 6500.00 ),
(5, 'Hardik', 27, 'Bhopal', 8500.00 ),
(6, 'Komal', 22, 'Hyderabad', 4500.00 ),
(7, 'Muffy', 24, 'Indore', 10000.00 );

該表將如下建立:

ID 姓名 年齡 地址 薪水
1 Ramesh 32 Ahmedabad 2000.00
2 Khilan 25 Delhi 1500.00
3 Kaushik 23 Kota 2000.00
4 Chaitali 25 Mumbai 6500.00
5 Hardik 27 Bhopal 8500.00
6 Komal 22 Hyderabad 4500.00
7 Muffy 24 Indore 10000.00

文字中的不等於

我們可以使用 SQL 中的文字中的 NOT EQUAL 運算子來比較兩個文字值並返回。我們可以在 SQL 語句的 WHERE 子句中使用 "<>" 或 "!=" 並排除與特定文字值匹配的行。

示例

在下面的查詢中,我們從 CUSTOMERS 表中檢索所有 NAME 不為 'Ramesh' 的記錄:

SELECT * FROM CUSTOMERS WHERE NAME <> 'Ramesh';

輸出

以上程式碼的輸出如下所示:

ID 姓名 年齡 地址 薪水
2 Khilan 25 Delhi 1500.00
3 Kaushik 23 Kota 2000.00
4 Chaitali 25 Mumbai 6500.00
5 Hardik 27 Bhopal 8500.00
6 Komal 22 Hyderabad 4500.00
7 Muffy 24 Indore 10000.00

帶有 GROUP BY 子句的不等於

我們可以將 NOT EQUAL 運算子與 GROUP BY 子句一起使用,以根據不等於指定文字值的來對結果進行分組。

聚合函式(如 COUNT()、MAX()、MIN()、SUM() 和 AVG())經常與 GROUP BY 語句一起使用。

示例

這裡,我們檢索 'CUSTOMERS' 表中具有不同年齡(不包括 '22')的記錄數,並按年齡值對它們進行分組:

SELECT COUNT(ID), AGE FROM CUSTOMERS 
WHERE AGE <> '22' GROUP BY AGE;

輸出

執行上述查詢後,它將生成如下所示的輸出:

COUNT(id) 年齡
1 32
2 25
1 23
1 27
1 24

具有多個條件的不等於

不等於運算子也可以與 WHERE 子句中的多個條件一起使用,以過濾出與特定條件匹配的行。

示例

現在,我們檢索所有薪資 ">2000" 或 "=2000" 的客戶。同時,客戶不得來自 "Bhopal":

SELECT * FROM CUSTOMERS 
WHERE ADDRESS <> 'Bhopal' AND (SALARY>'2000' OR SALARY='2000');

輸出

以下是以上程式碼的輸出:

ID 姓名 年齡 地址 薪水
1 Ramesh 32 Ahmedabad 2000.00
3 Kaushik 23 Kota 2000.00
4 Chaitali 25 Mumbai 6500.00
6 Komal 22 Hyderabad 4500.00
7 Muffy 24 Indore 10000.00

使用 NOT EQUAL 否定條件

在 SQL 中,NOT EQUAL 運算子還可以與NOT運算子結合使用以否定條件。它過濾掉滿足特定條件的行。

示例

在下面的查詢中,我們從 "CUSTOMERS" 表中檢索所有 "SALARY" 等於 '2000' 的行:

SELECT * FROM CUSTOMERS WHERE NOT SALARY != '2000';

輸出

執行以上程式碼後,我們將獲得以下輸出:

ID 姓名 年齡 地址 薪水
1 Ramesh 32 Ahmedabad 2000.00
3 Kaushik 23 Kota 2000.00
廣告