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
广告