问题标签 [in-subquery]
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.
sql - Oracle 相关子查询嵌套限制是否有解决方法?
我有一种情况,我正在尝试使用相关子查询,但遇到了 Oracle 中的嵌套限制。我可能错过了 Oracle 的另一个特性,所以我想我会在这里发布这个问题。有谁知道如何在不遇到此嵌套限制的情况下重写以下 SQL,而且还要保持在以下约束范围内?
约束:
- 只能修改 IN 子句中的 SQL(由于我无法控制的限制)
- 如图所示,父查询中的过滤需要在聚合发生之前应用于聚合子查询。
- 应用父过滤器后,在 colB 的聚合上过滤掉 0
下面的代码显示了我在遇到 Oracle 限制之前的尝试。另外,我使用的 Oracle 版本是 11.2.0.2。任何帮助,将不胜感激。谢谢!
以下是运行上述 SQL 时我正在寻找的一些示例输入/输出:
t3.colB 与 t1.colA 在 1 和 2 之间的 SUM 结果:
带有 t1.colA BETWEEN 1 和 2 的 IN 子句的子查询结果:
t1.colA BETWEEN 1 和 2 的顶级查询结果:
在完成了提供的一些答案之后,我有一种方法可以通过一个简单的 CASE 语句来避免 Oracle 中的嵌套限制:
不幸的是,这暴露了真正的问题。因为这是一个子查询,所以我一次只能遍历 t1.colA 范围的一个值。这似乎使得无法在子查询中执行该范围内的分析和。因为我只能修改 IN 子句中的 SQL,所以我看不到这个问题的解决方案。如果有人有任何建议,请告诉我。谢谢。
sql-server - 带有空子集的 Tsql IN 子句
是否可以设置一个IN
也匹配空子集的语句?
这是我的查询:
#subset
如果为空,我也想要该记录。一种解决方法是:
但是 ( SELECT * FROM #subset
) 并不是一个如此简单的查询,我想知道是否有一种聪明的方法可以将“IN”也用于空子集。
mysql - 通过 IN 条件使用 UNION 子查询的 MySQL DELETE FROM
我遇到了一个奇怪的 SQL 错误。最后一个查询不起作用。当然,我可以将那个 DELETE 拆分为三个查询,但我真的想知道为什么 MySQL 不允许我这样做。
一个小例子:
作品!
也有效!
然而
引发错误
#1064 - 您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以在第 3 行的“UNION (SELECT id FROM lift WHERE building = 123) UNION (SELECT id FROM qrc”附近使用正确的语法
任何人的线索?
mysql - 与实际数据的 in 子句相比,查询时间过长的 SQL:in 子句
我有 3 个 SQL 查询:
- 从 user_id =4 的用户中选择 student_id;// 返回 35
- select * from student where student_id in (35);
- select * from student where student_id in (select student_id from user where user_id =4);
前 2 个查询耗时不到 0.5 秒,但第三个查询(类似于第 2 个包含第一个作为子查询的查询)大约需要 8 秒。
我根据需要对表进行了索引,但时间并没有减少。
有人可以给我一个解决方案或为此行为提供一些解释。
谢谢!
sql - 试图从加入中删除,我知道我有时髦的间距,我知道我有重复的 IMEI
我收到此错误:
消息 512,级别 16,状态 1,第 1 行子查询返回超过 1 个值。当子查询跟随 =、!=、<、<=、>、>= 或子查询用作表达式时,这是不允许的。
BD.ESNs
isNVARCHAR(50)
和IMEI
isNVARCHAR(30)
我有重复ESNs
的,我想删除所有ESNs
匹配的SELECT ... IMEI
mysql - Soundex 与逗号分隔的子查询比较?
我正在对用户表执行 soundex 查询。用户的子查询以逗号分隔的字符串列表形式提供。
我想做类似于以下的事情,但我找不到写语法来完成这项工作。
稍后我计划通过将 soundex 值映射到列 id 的表来优化此查询,但是,我现在不确定当我的子查询是逗号分隔列表时是否可以引用匿名列?如何添加别名,或者如何将此列表转换为 soundex 值列表以进行比较?
sql-server - CASE-WHEN 返回子查询时的 TSQL 错误
有没有办法在 IN() 语句中嵌套 CASE-WHEN 语句,以便 WHEN 或 ELSE 之一返回子查询。对我来说,这不应该是一个问题,但不知何故我得到了错误:
“子查询返回超过 1 个值。”
IN()
应该处理多个值!
这是一个重现错误的小示例:
sql - SQL Server 子查询的新手 - 希望是一个简单的
我只是不能在一个查询中解决这个问题。表TblQcProduction
有一个生产订单上每个操作员的记录。
我需要找出根据生产订单报告的最后一个操作员是谁。
回报:
我需要输出(通过 prodOrder 返回 MAX IDX 的运算符):
我对分组或子查询不满意——我觉得会有一个非常简单的答案。
mysql - 在 mysql 查询中多次相同(子)查询
我有一个如下的 mysql 查询。
以下不是确切的查询,而是伪查询
这里 _a_list_of_client_id 是另一个查询,例如 select id_client from client where id_user = {some_id_given_as_parameter}
我只是想知道这是在查询中多次使用相同子查询的正确方法。或者有没有其他方法可以做这样的事情。
在此先感谢 MH Rasel
mysql - 使用 IN 子句 MySQL 返回逗号分隔值的子查询结果
朋友,两桌一桌是
我还有另一个表格,其中包含以下详细信息。
我想使用这样的子查询。
此查询不返回零行。但是当我这样使用时,我得到了结果。
我认为子查询返回结果的格式不同。你能指出我犯的错误吗?非常感谢。