SQL - 不等于


SQL 不等于运算符

SQL NOT EQUAL运算符用于比较两个值,如果不相等则返回 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 拉梅什 32 艾哈迈达巴德 2000.00
2 基兰 25 德里 1500.00
3 考希克 23 科塔 2000.00
4 柴塔利 25 孟买 6500.00
5 哈迪克 27 博帕尔 8500.00
6 科马尔 22 海得拉巴 4500.00
7 莫菲 24 印多尔 10000.00

不等于文本

我们可以在 SQL 中对文本使用 NOT EQUAL 运算符来比较两个文本值并返回。我们可以在 SQL 语句的 WHERE 子句中使用“<>”或“!=”来排除与特定文本值匹配的行。

例子

在以下查询中,我们从 CUSTOMERS 表中检索 NAME 不是“Ramesh”的所有记录 -

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

输出

上述代码的输出如下所示 -

ID 姓名 年龄 地址 薪水
2 基兰 25 德里 1500.00
3 考希克 23 科塔 2000.00
4 柴塔利 25 孟买 6500.00
5 哈迪克 27 博帕尔 8500.00
6 科马尔 22 海得拉巴 4500.00
7 莫菲 24 印多尔 10000.00

NOT EQUAL 与 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;

输出

执行上述查询时,它将生成如下所示的输出 -

计数(编号) 年龄
1 32
2 25
1 23
1 27
1 24

多个条件不等于

不等于运算符还可以与 WHERE 子句中的多个条件一起使用,以过滤掉与特定条件匹配的行。

例子

现在,我们正在检索所有工资为“ >2000 ”或“ =2000 ”的客户。同时,客户不得来自“博帕尔” -

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

输出

以下是上述代码的输出 -

ID 姓名 年龄 地址 薪水
1 拉梅什 32 艾哈迈达巴德 2000.00
3 考希克 23 科塔 2000.00
4 柴塔利 25 孟买 6500.00
6 科马尔 22 海得拉巴 4500.00
7 莫菲 24 印多尔 10000.00

使用 NOT EQUAL 否定条件

在 SQL 中,NOT EQUAL 运算符还可以与NOT运算符组合来否定条件。它过滤掉满足特定条件的行。

例子

在以下查询中,我们从“CUSTOMERS”表中检索“SALARY”等于“2000”的所有行 -

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

输出

执行上述代码后,我们得到以下输出 -

ID 姓名 年龄 地址 薪水
1 拉梅什 32 艾哈迈达巴德 2000.00
3 考希克 23 科塔 2000.00