问题标签 [sql-merge]
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 中合并表
对于下面的问题,据说答案应该是 C。但我认为正确的答案是答案 D,因为 NOT MATCHED 块将所有不匹配的记录插入到目标表中。有人可以解释一下吗?谢谢你。
Q)查看展览并检查 ORDERS_MASTER 和 MONTHLY_ORDERS 表中的数据。
评估以下 MERGE 语句:
上述声明的结果是什么?
A. ORDERS_MASTER 表将包含 ORDER_ID 1 和 2。
B. ORDERS_MASTER 表将包含 ORDER_ID 1,2 和 3。
C. ORDERS_MASTER 表将包含 ORDER_ID 1,2 和 4。
D. ORDERS_MASTER 表将包含 ORDER ID 1、2、3 和 4。
答案:C
sql - 合并两个没有主键但行数相同的表
我有两张桌子,看起来像那样。“Value1”类似于第二个键,ID + Value1 = “Primary”键,但它不在表设置中,并且第二个表中缺少 Value1 字段,所以我无法加入它。
但是第一个和第二个表总是有相同数量的行和完全相同的顺序!
表格1:
表 2:
结果,我希望第二个表与第一个表合并:
如何在 SQL 中做到这一点?是否可以使用简单的连接/联合,而无需创建新表或其他东西?
mysql - 将两个表合并为一个并删除重复项
我在同一个数据库中有 2 个表。
我想根据公共id
列合并它们。因为表格太大,我不确定是否有重复。
如何根据 将这两个表合并为一个id
并确保没有重复?
sql - 当它们在不同的服务器上时如何从其他表更新 SQL 表
我已经运行了以下命令来包含另一个服务器实例。
现在我正在尝试使用以下方法同步这些数据库:
这给了我以下错误:
FROM 子句中的对象“LocalDB.dbo.tableName”和“Server.ServerDB.dbo.tableName”具有相同的公开名称。使用相关名称来区分它们。
因此,在摆弄它之后,我尝试了各种版本:
但他们都给了我某种错误的解释:
无法绑定多部分标识符“Server.ServerDB.dbo.tableName.allrows”。
有人能发现我错过了什么吗?
java - Oracle SQL Merge 不会在 Statement 上执行
我有一个有四列的表,这就是它的样子。我会称之为 T_BPR_KPI_MONTHLY_VALUES
每个 kpi 代表一个测量值,每个 kpi 都有每日值,这些值保存在另一个名为 T_BPR_KPI_DY 的表中。我的目标是计算并保存每个 KPI 的每月值。
有可能在某一天,某些 kpi 的每日值仍然缺失,为了精确计算每月值,我必须能够替换数据库中的现有值,并为未来的月份和年份插入新的数据。
我认为 oracle sql 合并操作将是这项任务的不错选择。这个想法是检查一个条目是否已经存在,如果存在则更新它的值,如果不插入新的。
这就是查询的样子
我认为即时计算平均每月值并不是一个坏主意,所以你可以看到我有另一个选择查询,它只计算特定 kpi 的平均每月值。我不确定这是否是最佳实用解决方案,但是当我在 oracle sql 开发人员工具中执行此查询时它工作正常。但是,当我尝试从应用程序执行它时,它不起作用。
这就是方法的样子
在终端中它只打印出第一个合并 sql。它既不完成操作也不抛出异常。它以某种方式阻塞,并且在数据库中也没有发生任何事情。我的合并查询可能不正确,或者无法使用语句对象执行这种操作。如果有人能够看到这个问题是什么情况,请帮助。
提前谢谢
sql - PL/SQL - 从源表中的一行更新目标表中的多行
我正在使用合并语句来合并两个表,其中源表中的一行可能会更新目标表中的多行。
有点像这样
但是,当我尝试这样做时,我得到SQL Error: ORA-30926: unable to get a stable set of rows in the source tables
我还有其他方法可以做到这一点吗?
sql - 如何将 2 列或更多列合并为一列?
我在 SQL 中的一项任务中遇到了一个真正的问题,即以最有效的方式将 2 列或更多列中的数据合并到 1 列中。
我需要像这样将 3 条评论合并到 1 条评论栏中
现在我通过插入到我有 id 和 comments 列的表中手动完成,我必须从主表中整理数据。这真的很耗时,尤其是当我至少有 8 个要合并的评论列时。
sql - 基于相同日期时间合并 Sql 行
我正在努力完成以下任务。我有一张这样的桌子:
如您所见,有一些条目同时开始和结束。
我需要做的是将单元格合并在一起并删除不必要的行。
结果应该是这样的
有什么想法可以实现这一目标吗?我在 Sql Server 2008 R2
问候卢卡斯
sql - 无法终止的 Oracle 会话正在等待“来自客户端的 SQL*Net 消息”事件
在 Oracle 11gR2 上,我最近遇到了一个非常有趣的情况,涉及一个阻塞(但空闲!)MERGE
语句挂在“来自客户端的 SQL*Net 消息”事件上,导致后续并发执行MERGE
的语句通过“光标:引脚 S 等待 X"事件。在 Oracle Enterprise Manager 中,可以观察到以下情况:
这种情况变得更加严重,因为上面的 Session-ID 1204 不能被以下任何一种杀死:
我们的 DBA 有时能够杀死操作系统进程,但通常需要重新启动整个数据库。幸运的是,到目前为止,只在测试系统上,从未在生产中。
笔记:
我知道这可能与这个相当模糊的问题中报告的类似问题:Oracle 更新/插入卡住,DB CPU 处于 100%,并发性高,来自客户端的 SQL*Net 等待消息。我还是会再次报告,因为我有明确的复制路径,我将报告作为答案。
sql - java.sql.SQLSyntaxErrorException:ORA-00947:插入语句中的值不足
我创建了下表:
然后在主键上创建了一个序列和触发器:
执行以下 MERGE 语句时,我收到“ORA-00947:没有足够的值”