SQL IN – SQL NOT IN
SQL IN运算符与WHERE子句一起使用,以在WHERE子句中提供多个值作为条件。
1. SQL中的IN操作
SQL中的IN运算符几乎相当于为同一列拥有多个OR运算符。让我们详细讨论一下SQL中的IN运算符。有两种定义IN运算符的方法,我们将在下面详细讨论这两种方法。
1.1) IN中的多个值
语法:
SELECT Column(s) FROM table_name WHERE column IN (value1, value2, ... valueN);
使用上述语法,我们可以将多个值定义为IN操作符的一部分。通过一些示例,我们将更详细地了解上述语法。让我们以下面的学生表为例进行说明。
RollNo | StudentName | StudentGender | StudentAge | StudentPercent |
---|---|---|---|---|
1 | George | M | 14 | 85 |
2 | Monica | F | 12 | 88 |
3 | Jessica | F | 13 | 84 |
4 | Tom | M | 11 | 78 |
场景:获取年龄为12或13岁的学生所占的百分比。查询:
SELECT StudentPercent FROM Student WHERE StudentAge IN ('12', '13');
输出:
StudentPercent |
---|
88 |
84 |
1.2) 选择查询作为IN的一部分
句法:语法的规则和结构。
SELECT Column(s) FROM table_name WHERE column IN (SELECT Statement);
通过上述语法,我们可以使用SQL SELECT语句作为IN运算符的一部分提供值。通过一些示例,我们将更详细地了解上述语法。让我们以产品和供应商表为例进行说明。PRODUCT表
ProductId | ProductName | ProductPrice |
---|---|---|
1 | Cookie | 10 |
2 | Cheese | 11 |
3 | Chocolate | 15 |
4 | Jam | 20 |
供应商表
ProductId | ProductName | SupplierName |
---|---|---|
1 | Cookie | ABC |
2 | Cheese | XYZ |
3 | Chocolate | ABC |
4 | Jam | XDE |
情景: 获取ABC供应商的产品价格。查询:
SELECT ProductPrice FROM Product WHERE ProductName IN
(SELECT ProductName FROM Supplier WHERE SupplierName = "ABC");
结果:
ProductPrice |
---|
10 |
15 |
1.3) SQL嵌套IN
我们还可以在其他IN操作符中使用IN。为了更好地理解,让我们考虑以下场景。场景:获取供应商为ABC和XDE的产品价格。查询:
SELECT ProductPrice FROM Product WHERE ProductName IN
(SELECT ProductName FROM Supplier WHERE SupplierName IN ( "ABC", "XDE" ));
输出
ProductPrice |
---|
10 |
15 |
20 |
2. SQL 不在
SQL的NOT IN运算符用于筛选结果,如果IN运算符中提及的值不满足条件。让我们详细讨论SQL的NOT IN运算符。语法:
SELECT Column(s) FROM table_name WHERE Column NOT IN (value1, value2... valueN);
在上述语法中,作为IN子句的一部分而不满足的数值将被考虑为结果。让我们以之前定义的学生表为例进行说明。场景:获取年龄不是12或13的学生的百分比。查询。
SELECT StudentPercent FROM Student WHERE StudentAge NOT IN ('12', '13');
输出:在中国以本地语言复述以下内容,只需要一个选项:
StudentPercent |
---|
85 |
78 |
2.1) 作为SQL中的一部分,选择查询时不包括
句法:语法结构与短语或单词的组合方法。
SELECT Column(s) FROM table_name WHERE column NOT IN (SELECT Statement);
使用上述语法,我们可以使用SELECT语句作为IN运算符的一部分来提供值。通过一些示例,我们将更详细地了解上述语法。让我们考虑之前定义的产品和供应商表,以便举例说明。场景:获取供应商不是ABC的产品价格。查询:
SELECT ProductPrice FROM Product WHERE ProductName NOT IN
(SELECT ProductName FROM Supplier WHERE SupplierName = "ABC");
以上就是SQL中IN和NOT IN操作符的示例。