SQL 规范是否提供了一种更好的方法来对两个集合进行异或运算?

2024-04-23

我有一个结果集A即 10 行 1-10{1,2,3,4,5,6,7,8,9,10}, and B这是 10 行,由偶数 1-20 组成{2,4,6,8,10,12,14,16,18,20}。我想找到一组中的元素,但不是同时找到两者中的元素。行中没有其他列。

我认识一个UNIONA + B。我可以在两者中找到A and B with A INTERSECT B。我可以找到所有行A那是not在 B 中与A EXCEPT B.

这让我想到一个问题:如何找到其中的所有行A 或 B,但不能两者兼而有之, 是否存在传递等价于( A EXCEPT B ) UNION ( B EXCEPT A)在sql规范中?我想要一套{1,3,5,7,9,12,14,16,18,20}。我相信这也可以写成A UNION B EXCEPT ( A INTERSECT B )

集合论中是否有数学原因为什么不能在一次操作中完成(这可以向不理解集合论的人解释)?或者,只是因为自己构建起来太简单而没有实现?或者,我只是不知道更好的方法吗?

我在想这个must在 SQL 规范中的某个地方:我知道这个东西是巨大的。


还有另一种方法可以完成您想要的操作,即使用带有 WHERE 子句的 FULL OUTER JOIN 来删除两个表中出现的行。这可能比您建议的构造更有效,但您当然应该测量两者的性能以确定。您可能可以使用以下查询:

SELECT COALESCE(A.id, B.id) AS id
FROM A
FULL OUTER JOIN B
ON A.id = B.id
WHERE A.id IS NULL OR B.id IS NULL
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

SQL 规范是否提供了一种更好的方法来对两个集合进行异或运算? 的相关文章

  • pg_resetxlog 是做什么的?它是如何运作的?

    我查看了 postgres 文档 并给出了以下概要 pg resetxlog f n ooid x xid e xid epoch m mxid O mxoff l timelineid fileid seg datadir 但文档中没有任
  • SQL SERVER 字符串中的掩码字符

    如何替换 SQL SERVER 中字符串中 x 和 y 字符之间的字符 例如 如果我有 TEST123456 最后有 TE 56 我不知道字符串有多长 但我知道我需要屏蔽字符串中 x 和 y 之间的字符 你可以使用REPLICATE htt
  • 如何比较具有复合主键的 2 个表中的行?

    这是场景 我有两张数据表 一张是2009年版本 一张是2010年版本 每个表的主键都是复合键 我知道每一行都有不同的行数 我需要找出差异 通常 在 正常 主键设置中 我只会查找不在其他表的主键列表中的主键值 但我不知道如何使用复合主键来做到
  • 从 SQL Server 中的字符串中提取子字符串

    我需要从字符串中提取子字符串的一部分 如下所示 YY 12 Yellow ABC WSA Thisone A SS 4MON DHHE A A 我需要按如下方式提取字符串 Yellow Thisone DHHE 你可以使用这样的东西 dec
  • TSQL 多列唯一约束也允许多个 Null

    我目前正在做一些从 MS Access 到 SQL Server 的迁移 Access 允许唯一索引中存在多个 Null 而 SQL Server 不允许 我一直在通过删除 SQL Server 中的索引并添加筛选索引来处理迁移 CREAT
  • @Where 子句在 hibernate join 查询中不起作用

    我有 2 个带有 Where 注释的实体 第一个是类别 Where clause DELETED 0 public class Category extends AbstractEntity 且有如下关系 OneToMany fetch F
  • ORA-01741: 非法的零长度标识符

    您好 我在 shell 脚本中使用删除查询 并且遇到了这个问题 delete from WHITELIST CLI where filecode like Line Index condense Error ERROR ORA 01741
  • 如何使用 SQLalchemy 连接三个表并将所有列保留在其中一个表中?

    所以 我有三张表 类定义 engine create engine sqlite test db echo False SQLSession sessionmaker bind engine Base declarative base cl
  • SQLAlchemy TypeDecorator 不起作用

    我在用着xml在我的 postgresql 数据库中 我需要一个可以处理的自定义类型xmlSQLAlchemy 中的数据 所以我做了XMLType班级与xml etree 但它并没有按照我的意愿工作 这是我写的代码 import xml e
  • SQL Server:是否可以同时插入两个表?

    我的数据库包含三个表 称为Object Table Data Table and Link Table 链接表仅包含两列 对象记录的标识和数据记录的标识 我想从中复制数据DATA TABLE它链接到一个给定的对象标识并将相应的记录插入到Da
  • 如何从其他表填充表的外键

    我有以下表格 其中translation是空的 我正在尝试填充 translation id translated language id template id language id langname langcode template
  • 在自引用表中查询父项和子项

    我有一个Comments如下表所示 在MySQL content created at id parent id second comment 2014 06 03T10 08 44 0000 37 1 third comment 2014
  • 在 LINQ 中选择案例[重复]

    这个问题在这里已经有答案了 我怎样才能把它翻译成 LINQ 呢 select t age as AgeRange count as Users from select case when age between 0 and 9 then 0
  • 如何保证auto_increment数字没有间隙?

    我有一个关于自动递增的问题 这是我的表 我首先拥有它 它可以顺利地递增 id id name 1 name1 2 name2 3 name3 4 name4 5 name5 6 name6 但是当我删除一条记录并插入一条新记录时 id从7开
  • 有用的库存 SQL 数据集吗?

    有谁知道有哪些资源可以提供优质 有用的股票数据集 例如 我下载了一个包含美国所有州 城市和邮政编码的 SQL 脚本 这在最近的一个应用程序中节省了我很多时间 我希望能够按地理位置进行查找 你们中有人知道其他可以免费下载的有用数据集吗 例如
  • 如何提取 MySQL 日期中的月份和年份并进行比较?

    如何从 mySQL 日期中提取月份和日期并将其与另一个日期进行比较 我找到了 this MONTH 但它只获取月份 我寻找月份和年份 在Mysql Doku中 http dev mysql com doc refman 5 5 en dat
  • MySQL SUM 具有相同的 ID

    抱歉 这个真正简单的问题 我刚刚学习 PHP 和 MySQL 我已经在谷歌上搜索了一个多星期 但没有找到任何答案 我创建了一个简单的财务脚本 表格如下 table a aid value 1 100 2 50 3 150 table b b
  • PL/pgSQL 中的 EXPLAIN ANALYZE 给出错误:“查询没有结果数据的目的地”

    我试图理解 PL pgSQL 函数中 select 语句的查询计划 但我不断收到错误 我的问题 如何获取查询计划 以下是重现该问题的简单案例 相关表名为 test table CREATE TABLE test table name cha
  • “date $1”参数化查询中的 PostgreSQL 语法错误

    尝试参数化我的 SQL 查询 使用 libpq 函数PQexec参数 http www postgresql org docs current static libpq exec html 我陷入了语法错误 SELECT date 1 错误
  • SQL Server T-SQL 中的 REGEXP_LIKE 转换

    我在一份需要转换为 SQL Server 的旧报告中遇到了这一行 REGEXP LIKE examCodes learner code examCodes 是源 learner code 是模式 我知道 SQL Server 没有 REGE

随机推荐

  • 如何在SSRS图轴上跨越月份和年份?

    我真的很喜欢下面 SSRS 图表中 x 轴的月份和年份的跨度 我怎么做 将日期拆分为数据集中的几列 将这些列添加为条形图的类别组
  • Android ListView 填充内容而不移动 ListView 高度?

    我有一个 ListView 里面有一堆项目 如何使顶部和底部项目的顶部边距为 10dp 底部项目的底部边距为 10dp 现在我可以通过 ListView 上的填充或边距来做到这一点 但结果是 当您滚动时 ListView 的边缘现在距屏幕底
  • PHP中1个月代表多少天?

    我发现 php 中的月份加法和减法存在奇怪的问题 我的问题是 1 个月有相当于天数吗 如果是 这是所有编程语言的通用标准吗 举几个例子 echo date Y m d strtotime 2011 03 31 1 months 2011 0
  • node.js http 服务器,检测客户端何时断开连接

    我使用express 和node js 作为http 服务器 我存储响应对象 以便可以将事件流式传输到该通道上的客户端 有没有办法检测客户端何时断开连接 当我杀死我的客户端时 我仍然可以写入响应对象 而不会收到任何类型的异常 错误 看起来只
  • 安装 Rails 版本 3.2.15 时出现“Gem::RemoteFetcher::UnknownHostError”

    我之前已经在实时 ubuntu USB 上成功安装了 Rails 3 2 15 并具有数据持久性 现在我已经习惯了操作系统 Ubuntu 12 04 LTS 我已经将它安装在笔记本电脑上 并且正在安装我在实时 USB 中使用的东西 长话短说
  • 更改控制台大小

    Delphi中的简单问题 我创建了一个控制台应用程序 如果控制台窗口的高度少于 80 行 我需要将其高度更改为 80 行 这需要从代码中完成 并且实际上是在代码内有条件的 即 当发生错误时 它会增加控制台的大小 以便整个 巨大的 错误报告可
  • NSIS:在标签中插入链接

    假设我有以下 nsDialog 标签 单击 接受 即表示我同意示例的许可协议和隐私政策 您可以访问需要使用个人信息的功能 欲了解更多信息 请下载示例的内容政策 我想在此标签中插入链接 如下所示 单击 接受 即表示我同意示例的内容许可协议 h
  • 动画 GIF 作为 THREE.js 中的纹理

    我正在寻找一种在 THREE js 中使用 GIF 动画作为纹理的方法 我目前可以加载纹理 甚至是 GIF 格式 但它无法播放动画 有什么办法可以做到吗 我发现了一些像这样的链接 https github com JordiRos GLGi
  • 如何从 JavaScript 变量保存 png

    我在 javascript 变量中有一个以 base64 编码的图像 data image png base64 base64 data 编辑 我需要将该文件保存到磁盘而不要求访问者右键单击 编辑 是否可以 如何 提前致谢 此致 我知道这个
  • 如何从 Rails 中的 RSpec 测试调用应用程序帮助器方法?

    标题是不言自明的 我尝试过的一切都导致了 未定义的方法 澄清一下 我并不是想测试辅助方法 我正在尝试在集成测试中使用辅助方法 您只需在测试中包含相关的帮助程序模块即可使方法可用 describe foo do include ActionV
  • Knockout:避免绑定中的循环更新

    我有一个与接口交互的自定义 绑定Scribe https github com guardian scribe 一个内容可编辑的所见即所得编辑器 当编辑器内容发生变化时 它会更新关联的可观察量 并在关联的可观察量发生变化时更新编辑器 ko
  • 将属性添加到对象数组

    我有一个对象数组 如下所示 Object Results Array 2 Results Array 2 0 1 0 Object id 1 name Rick 1 Object id 2 name david 我想向该对象数组的每个元素添
  • 如何在 Node.js 中无限读取行

    while 1 rl question Command function answer console log answer 刚刚尝试了这段代码 但不是一一输入 而是闪烁 命令 行 我知道 Node js 是非阻塞的 但我不知道如何解决这个
  • 是否可以在 Flutter 的 IconButton 中使用 DropDownButton?

    Update override Widget build BuildContext context return new Container height MediaQuery of context size height child Si
  • 数据湖分析 U-SQL 提取速度(本地与 Azure)

    一直在研究使用 Azure Data Lake Analytics 功能来尝试操作我存储在 Azure Blob 存储中的一些 Gzip 处理的 xml 数据 但我遇到了一个有趣的问题 本质上 当在本地使用 U SQL 处理 500 个 x
  • WordPress:获取自定义类型的所有帖子

    我有这个奇怪的问题 我想获取所有自定义类型的帖子 这是我的代码片段 query new WP Query array post type gt custom post status gt publish while query gt hav
  • ServerEndpoint 和 web.xml

    我有一些 Soap REST servlet 现在还有一个 WebSocket ServerEndpoint game public class WebSocketgame 我有下一个麻烦 如果 web xml 存在 WebSocket 不
  • 使用 google/facebook 和自定义 Nodejs 服务器进行 Firebase 身份验证

    我正在尝试将 firebase 身份验证与我的自定义 Nodejs 服务器集成 电子邮件 密码策略非常简单 因为管理 sdk 支持所需的所有操作 然而 对于提供商来说 文档指示我们手动处理登录流程 https firebase google
  • AttributeError:“模块”对象没有 tf.app.run() 的属性“main”

    我正在尝试测试一个简短的程序 该程序非常简单 如下所示 import numpy as np import tensorflow as tf flags tf app flags FLAGS flags FLAGS import tenso
  • SQL 规范是否提供了一种更好的方法来对两个集合进行异或运算?

    我有一个结果集A即 10 行 1 10 1 2 3 4 5 6 7 8 9 10 and B这是 10 行 由偶数 1 20 组成 2 4 6 8 10 12 14 16 18 20 我想找到一组中的元素 但不是同时找到两者中的元素 行中没