首页 > 数据库 >无涯教程-SQL - EXCEPT Clause函数

无涯教程-SQL - EXCEPT Clause函数

时间:2024-01-17 11:31:52浏览次数:40  
标签:00 Clause ORDERS EXCEPT 无涯 NULL ID SELECT

SQL EXCEPT 子句用于组合两个SELECT语句,并从第一个SELECT语句返回第二个SELECT语句未返回的行,这意味着EXCEPT仅返回第二行SELECT语句中不可用的行, MySQL不支持EXCEPT运算符。

EXCEPT - 语法

EXCEPT 的基本语法如下。

SELECT column1 [, column2 ]
FROM table1 [, table2 ]
[WHERE condition]

EXCEPT

SELECT column1 [, column2 ]
FROM table1 [, table2 ]
[WHERE condition]

在此,给定条件可以是根据您的要求的任何给定表达式。

EXCEPT - 示例

请考虑以下两个表。

表1 -客户表(CUSTOMERS)如下。

+----+----------+-----+-----------+----------+
| ID | NAME     | AGE | ADDRESS   | SALARY   |
+----+----------+-----+-----------+----------+
|  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 | MP        |  4500.00 |
|  7 | Learnfk    |  24 | Indore    | 10000.00 |
+----+----------+-----+-----------+----------+

表2 -订单表(ORDERS)如下。

+-----+---------------------+-------------+--------+
|OID  | DATE                | CUSTOMER_ID | AMOUNT |
+-----+---------------------+-------------+--------+
| 102 | 2019-10-08 00:00:00 |           3 |   3000 |
| 100 | 2019-10-08 00:00:00 |           3 |   1500 |
| 101 | 2019-11-20 00:00:00 |           2 |   1560 |
| 103 | 2018-05-20 00:00:00 |           4 |   2060 |
+-----+---------------------+-------------+--------+

现在,让无涯教程将这两个表连接到SELECT语句中,如下所示。

SQL> SELECT  ID, NAME, AMOUNT, DATE
   FROM CUSTOMERS
   LEFT JOIN ORDERS
   ON CUSTOMERS.ID=ORDERS.CUSTOMER_ID
EXCEPT
   SELECT  ID, NAME, AMOUNT, DATE
   FROM CUSTOMERS
   RIGHT JOIN ORDERS
   ON CUSTOMERS.ID=ORDERS.CUSTOMER_ID;

这将产生以下输出。

+----+---------+--------+---------------------+
| ID | NAME    | AMOUNT | DATE                |
+----+---------+--------+---------------------+
|  1 | Ramesh  |   NULL | NULL                |
|  5 | Hardik  |   NULL | NULL                |
|  6 | Komal   |   NULL | NULL                |
|  7 | Learnfk   |   NULL | NULL                |
+----+---------+--------+---------------------+

参考链接

https://www.learnfk.com/sql/sql-except-clause.html

标签:00,Clause,ORDERS,EXCEPT,无涯,NULL,ID,SELECT
From: https://blog.51cto.com/u_14033984/9289444

相关文章

  • 文件上传超出了tomcat的限制大小:org.apache.tomcat.util.http.fileupload.impl.FileSi
    报错的原因springBoot项目自带的tomcat对上传的文件大小有默认的限制,SpringBoot官方文档中展示:每个文件的配置最大为1Mb,单次请求的文件的总数不能大于10Mb。解决方法SpringBoot2.0版本在【application】配置文件中加入如下代码:#maxFileSize单个数据大小spring.servlet......
  • 无涯教程-SQL - CARTESIAN JOIN函数
    CARTESIANJOIN或CROSSJOIN从两个或多个联接表中返回记录集的笛卡尔积。CARTESIANJOIN-语法CARTESIANJOIN或CROSSJOIN的基本语法如下-SELECTtable1.column1,table2.column2...FROMtable1,table2[,table3]CARTESIANJOIN-示例请考虑以下两个表。表1-C......
  • 无涯教程-SQL - FULL JOIN函数
    SQLFULLJOIN组合了左右外部联接的输出,联接的表将包含两个表中的所有记录,并为任一侧缺少的匹配项填充NULL。FULLJOIN-语法FULLJOIN的基本语法如下-SELECTtable1.column1,table2.column2...FROMtable1FULLJOINtable2ONtable1.common_field=table2.common_fie......
  • 解析 terminating with uncaught exception of type std::bad_cast: std::bad_cast
    解析"terminatingwithuncaughtexceptionoftypestd::bad_cast:std::bad_cast"简介在C++编程中,我们有时会遇到异常(exception),这些异常可能是由于程序运行时出现意外情况而引发的错误。其中,"terminatingwithuncaughtexceptionoftypestd::bad_cast:std::bad_cast"是一种......
  • 无涯教程-SQL - RIGHT JOIN函数
    SQLRIGHTJOIN返回右表中的所有行,即使左表中没有匹配项也是如此,这意味着右连接返回右表中的所有值,再加上左表中的匹配值,如果没有匹配则返回NULL。RIGHTJOIN-语法RIGHTJOIN的基本语法如下。SELECTtable1.column1,table2.column2...FROMtable1RIGHTJOINtable2O......
  • 无涯教程-SQL - Create Table Using another Table.函数
    可以使用CREATETABLE语句和SELECT语句的组合来创建现有表的副本。新表具有相同的列定义。可以选择所有列或特定列。当您使用现有表创建新表时,将使用旧表中的现有值填充新表。语法从另一个表创建表的基本语法如下:CREATETABLENEW_TABLE_NAMEASSELECT[column1,colu......
  • 无涯教程-SQL - Injection(注入)
    如果您通过网页输入用户输入并将其插入到SQL数据库中,则可能会遇到因SQL注入而引起的安全问题。本章将教您如何防止这种情况的发生,并帮助您保护服务器端脚本(如PERL脚本)中的脚本和SQL语句。在下面的示例中,名称限于字母数字字符加下划线,并且长度介于8到20个字符之间(根据需要修......
  • 无涯教程-SQL - Sequences(序列)
    序列是按需生成的一组整数1、2、3,...。序列在数据库中经常使用,因为许多应用程序要求表中的每一行都包含唯一值。本章介绍如何在MySQL中使用序列。AUTO_INCREMENT列MySQL中使用序列的最简单方法是将一列定义为AUTO_INCREMENT,其余部分留给MySQL处理。试试下面的例子,这将创建一......
  • 无涯教程-SQL - SubQueries(子查询)
    子查询或内部查询或嵌套查询是另一个SQL查询中的查询,并嵌入在WHERE子句中。SubQueries-语法子查询最常与SELECT语句一起使用。基本语法如下-SELECTcolumn_name[,column_name]FROMtable1[,table2]WHEREcolumn_nameOPERATOR(SELECTcolumn_name[,column......
  • (vcpu-0)Exception 0xc0000005 (access violation) has occurred
    VM安装window10报错如何解决?(vcpu-0)Exception0xc0000005(accessviolation)hasoccurred.(vcpu-1)Exception0xc0000005(accessviolation)hasoccurred.除了常规的虚拟化的一些原因外,如果网上的方式你都试过了,不能解决的话;那么请升级你的VMware到16.2.*版本即可;......