问题标签 [sql-except]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
386 浏览

android - 在游标结果中获取表名,Android,SQLite

我正在编写一个涉及汽车和零件的 Android 应用程序。

我想要做的是提供数据库中所有部件的 ListView,不包括已经分配给特定汽车的部件。

我可以通过以下查询获得我想要的结果,其中包含 EXCEPT 语句。

我遇到的问题是我得到了一个光标结果,其中包括表名作为键名的一部分,如下所示:

当我尝试将此发送到 CursorAdapter 时,它会窒息。

CarsToParts 表具有以下列:

CarsToParts 表允许我将相同的零件映射到两辆不同的汽车,这通常是来自同一制造商的汽车的可能性。

有没有办法让 SQLite 不包括表名作为光标输出中键名的一部分?

编辑: 经过进一步调查,我发现 CursorAdapter 需要存在_id列。如果我能让 SQLite 不将表名包含在键名中,那就是这样。

0 投票
1 回答
2355 浏览

sql - SQL-Union ALL 和 except

当我在 SQL 中执行 except 和 union 语句时,我看到了一种奇怪的行为。

我有两张桌子

数据看起来像这样

这是我的最后一个查询

并给出这些记录

我的问题是..从第一个 except 子句中不应该有另一行:

这是

最终查询不应该有 3 行而不是只有 2 行,因为并非所有列都相同。

0 投票
2 回答
28070 浏览

sql - INTERSECT 和 INNER JOIN 之间有根本区别吗?

我知道,INNER JOIN 是为引用的键创建的,而 INTERSECT 不是。但是在某些情况下,他们俩都可以做同样的事情。那么,以下两个表达式之间是否存在差异(在性能或其他方面)?如果有,哪个更好?

表达式 1:

表达式 2:

0 投票
2 回答
72 浏览

sql - 根据条件查找 SQL 表中缺失的条目

我有适度的简单 SQL 经验(在这里使用 MS SQL server 2012),但这避开了我。我希望从表中输出不同的名称(以前从连接成功创建),其中缺少一些必需的条目,但以存在另一个类似条目为条件。对于拥有位置 90 的任何人,我想检查他们也有位置 10 和 20...

例如,考虑这个表:

正式地,我想获得表中那些条目的名称(和编号):

  1. 在位置 90 有一个条目
  2. 并且没有所有其他必需的位置条目 - 在这种情况下也是 10 和 20。

所以在上面的例子中

  • 此查询不输出 Alice 和 Emma,它们有 90、10 和 20 的条目(全部存在且正确,我们忽略位置 40 条目)。
  • 此查询未输出 Don,他没有位置 90 的条目。
  • 此查询输出 Bob 和 Gay,它们都缺少位置 20(我们忽略 Gay 的位置 30 条目)。
  • 此查询输出 Chris,他缺少位置 10。
  • 此查询输出 Fred,他缺少位置 10 和 20。

因此,所需的查询输出类似于:

我已经尝试了一些左/右连接的方法,其中 B.Key 为空,并从...中选择,但到目前为止我还不能完全正确地获得逻辑方法。在原始表中,有数十万个条目,只有几十个有效的缺失匹配项。不幸的是,我不能使用任何计算条目的东西,因为查询必须是特定位置的,并且在所需位置之外的其他位置还有其他有效的表条目。

我觉得这样做的正确方法类似于左外连接,但由于起始表是另一个连接的输出,这是否需要声明一个中间表,然后将中间表与其自身外部连接?请注意,无需填写任何空白或将项目输入表中。

任何建议将不胜感激。

===此处粘贴的已回答和使用的代码===

0 投票
1 回答
207 浏览

sql-server - 我们可以阻止 SQL Server 忽略值中的尾随空格吗

我正在审核 2 个相同结构表中的值。T-SQLEXCEPT语句忽略了一个表中值的尾随空格,因此这些值不匹配,但也不会出现在我们的审计中。

我尝试寻找改变 SQL 比较列的方式的方法。我做了类似的事情来确保它区分大小写,但找不到可以使它在字段值中包含空格/填充的东西。

示例数据的值为MyTable“产品名称”,而RemoteTable的值为“产品名称”。

为了快速重现,这是我现在正在做的一个精简版:

这目前不返回任何结果,表明值是相同的。但是第二个表中的值末尾有一个空格。

我希望得到一个带有“产品名称”的结果

当我需要将事物与区分大小写进行比较时,我可以添加

是否有类似的东西会因为空格而显示值不同?

0 投票
2 回答
61 浏览

sql - SQL Server 中是否有一种方法可以显示两个具有相同布局并共享一些公共数据的表之间的字段差异

我在两个数据库(两个不同的组织)上有两个表,它们具有相同的布局 - 它们是物料主表。一个列出了大约 600k 材料,一个列出了大约 100k - 它们共享大约 35k 相同的材料。问题是一个组织可能具有与另一个组织不同的属性,即一个组织的价格可能不同,或者一个组织与另一个组织的季节可能不同。如果可能的话,我试图找到一种方法来并排展示,一个组织中的材料与另一个组织中的材料之间存在差异。到目前为止,我只提出了下面的代码 - 它正在使用 EXCEPT 但似乎它只能从一行或另一行返回数据,而我试图同时查看两者。有什么想法吗?

我已经尝试过使用 EXCEPT 语句,但只得到了结果的一侧。

我想获得共享的 35k 材料,并能够展示它们的不同之处。作为参考,这些表中有大约 300 列,因此列出每一列可能有点麻烦。

样本数据:

在此处输入图像描述

0 投票
2 回答
125 浏览

sql - 当 EXCEPTed 查询是聚集表时,为什么执行计划中有排序运算符?

我正在构建一个数据仓库,我在两个表数据比较语句中发现了一个问题。我使用 EXCEPT 运算符来比较具有聚集索引的表(普通 int 字段作为键)。我的问题是,在查询执行计划中,两个聚集索引扫描后都有排序运算符。这是一个代码示例:

(GENERATE_SEQUENCE 是一个行生成器)

现在除了查询:

这是执行计划的图像:

【执行计划】

我知道 Merge Join 需要排序的输入,但它还不够排序吗?我的意思是,我们需要的唯一排序列是 key_a/key_b。由于聚集索引,这已经完成。不需要对其他列进行排序,因为在 key_a/key_b 的每个值内只有一行 - 无需排序。

所以,我的问题是:

  1. 为什么在这种情况下聚集索引扫描后会有排序运算符?
  2. 当我想使用 EXCEPT 运算符时,如何避免这些类型?
  3. 进行表格比较的更好方法(如果有的话)是什么?

提前感谢您的回答:)

0 投票
3 回答
115 浏览

sql - 将这两条 SQL 语句合二为一

我有两张桌子t1t2有列name, invoice, total

我正在使用此查询来获取 T2 中而不是 T1 中的行

它工作正常并返回几行,我想要的是在一个语句中删除这些返回的行。

我已经尝试过了,但它不仅删除了查询中返回的行,还删除了 T2 中的所有行。

这是我的数据示例:

T1

在此处输入图像描述

T2

在此处输入图像描述

返回的数据(存在于 T2 中,而不存在于名称为 C2 的 T1 中)

在此处输入图像描述

第三个表信息是获取名称,在这种情况下是 C2。

提前致谢。

0 投票
2 回答
43 浏览

sql - 为什么我们不能使用减号关键字而不是减号

求表中 CITY 条目总数与表中不同 CITY 条目数之间的差值。

如果我使用减号关键字,那么它不起作用但是当我使用实际的减号时,它就像

这是为什么?

0 投票
1 回答
310 浏览

sql - 两个子查询单独工作正常,但是当加入时“SQL 命令未正确结束”,除了 [解释说我是五岁]

我看了很多类似的帖子,但我仍然找不到类似的案例,或者我太初学者无法理解问题中的命令。

我写但返回的命令ORA-00933: SQL command not properly ended

当我运行单个选择命令时,它们运行良好并返回预期结果。

编辑:我正在学习EXCEPT使用此命令,因此,我必须使用该命令来完成任务。任务是:

检索在所有销售交易中售出超过三件商品但在超过一次销售交易中未售出的每件商品的商品 ID、商品名称和商品价格