SQL EXCEPT运算符
SQL中的 EXCEPT 运算符用于检索存在于第一个表中的唯一记录,而不是两个表共同的记录。该运算符作为SQL UNION运算符的相反操作。
为了更好地理解,请考虑如下图所示的具有记录的两个表−
如果我们对上述两个表执行EXCEPT运算符来检索名称,它将只显示第一个表中与第二个表的记录不共有的记录。
在这里,“Dev”在两个表中都是相同的。因此,EXCEPT运算符将删除它,并仅检索“Sara”和“Jay”作为输出。
语法
以下是SQL中EXCEPT运算符的语法 −
注意 - 两个SELECT语句中的列的数量和顺序应保持一致。
示例
首先,让我们使用以下查询创建一个名为“ STUDENTS ”的表 –
表格创建完成后,我们可以使用以下查询语句向表格中插入一些值。
让我们使用以下查询来验证“STUDENTS”表是否已创建 −
如下图所示,数据表已经在数据库中创建。
让我们使用以下查询创建另一个名为“ ASSOCIATES ”的表:
一旦表格被创建,让我们使用以下查询向表格中插入一些值-
让我们使用以下查询验证是否已创建表“ASSOCIATES”:
如下输出所示,表已经在数据库中创建。
让我们使用以下查询来检索仅在第一个表中唯一的记录:
输出
当我们执行上述查询时,输出结果如下:
使用BETWEEN运算符的EXCEPT
如同我们在初始语法中讨论的一样,我们也可以将EXCEPT运算符与条件运算符一起使用。在SQL中,我们可以使用EXCEPT运算符和BETWEEN运算符来排除落在指定范围内的行。
示例
让我们使用以下查询检索只在第一个表中唯一的记录。此外,我们还检索年龄在20至30之间的记录。
输出
当我们执行程序查询时,输出如下所示−
除了使用IN运算符外
我们还可以在SQL中使用EXCEPT运算符和IN运算符一起使用,以排除拥有指定值的行。IN运算符用于基于指定值列表过滤结果集。
示例
在这里,我们正在获取表中 仅 独特的记录。此外,我们使用 IN 运算符来检索爱好是“Cricket”的记录。
输出
当我们执行上述查询时,输出结果如下所示 –
使用LIKE运算符的EXCEPT
在SQL中,EXCEPT运算符还可以与LIKE运算符一起使用,来排除与指定模式匹配的行。LIKE运算符用于对字符串进行模式匹配。
示例
让我们使用通配符’%’以及LIKE运算符,从第一个SELECT语句的结果集中检索以’v’开头的姓名。
输出
以上查询的输出如下所示: