问题标签 [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 sql多个新行合并到一个表中
我需要将新行插入到 oracle(12c) SQL 表中,前提是它们不存在使用 java 代码检查和插入的行可能超过 100 行
理想情况下,我希望有一个包含多个插入的合并语句,如下所示:
但我的语法有问题,我找不到这种情况的任何例子
我想知道:
- 如果这甚至可能
- 如果是,这是正确的方法还是有更好的解决方案
- 应该是什么语法(一些例子会很棒)
- 如果不可能,那么正确的方法是什么。
感谢帮助
sql - oracle sql - 将带有嵌套表的表合并为列
我有 2 个表和一个嵌套表:
1.stores有关产品的数据,包括以下列:
2-带有新折扣的临时表包括列:
我需要做的是将表 2 合并到表 1 - 如果没有匹配插入则忽略(当匹配是:表 1 和 2 中的产品 id 匹配以及此产品子表 PROMOTIONID 匹配表 2 中的 PROMOTIONID)
到目前为止,这是我在嵌套部分遇到困难的地方 - ON 子句和 Insert 子句
我知道这是错误的,但我在任何地方都找不到怎么做
示例:价格表:
row1(1,50,...,nested_table[(11,...),(12,...)])
row2(2,50,...,nested_table[(10,...),(12,...)])
新促销表:
(15,1,...)
(11,1,...)
id 为 15 的新促销将添加到 row1 和 row2
并且不会添加 id 为 11 的促销
请帮忙,谢谢
sql - 在 SQL 中使用 MERGE
我有两个表 - T1,T2 具有相同的表结构。如果 T2 中不存在新行,我想从 T1 中插入 T2 中的新行,并且还更新 T2 中主键上的现有数据。有人可以帮助我使用 MERGE 的 SQL。
TIA
mysql - 合并两个表而不重复
我需要将两个用户表合并为一个而不重复。
例如:在我的数据库中,我有表 en_user 和 kn_user 并且两者中都存在很少的用户,所以当我运行查询以将 kn_user 与 en_user 合并时,应将 kn_user 中存在的唯一用户复制到 en_user 中的用户不应出现在两者中被合并。
为了更好地理解我的表格
en_users 表
kn_user 表
所以当合并 kn_users 和 en_users 时需要这个输出
en_users 表
oracle - Oracle: Invalid identifier
I am using the following query in oracle. However, it gives an error saying that "c.par" in line 5 is an invalid parameter. No idea why. The columns exist. I checked. I have been struggling with this for a long time. All I want to do is to merge one table into another and update it using oracle. Could someone please help?
sql-server - 在 TSQL-Merge 中条件匹配时更新和插入
我一直在尝试编写一个存储过程,我可以在其中使用带有以下条件的 Merge 执行 UpSert
如果记录存在,则将目标的结束日期更改为昨天,即现在 - 1
如果记录不存在,则插入新记录
这是我在 SP 中使用的表 tblEmployee
这是我的 SP,它以 UDTT 作为输入参数
当列匹配时,如何同时执行更新现有记录和添加新记录
请有人解释一下TSQL中合并的执行流程,即
每次合并中都会执行以上 3 个条件还是每次只执行匹配条件
提前致谢
sql - 在 SQL 合并中,如果 `when 不匹配并且` 失败
考虑以下内容merge
:
这不是一个非常困难的查询,但我需要用when matched and <condition>
和 进行一些澄清when not matched
。
例如,在我的源表中,我有这样的记录:
假设目标表有一条非常相似的记录:
当合并语句运行时,它们是匹配项 ( tgt.id = src.id
),但它们将不符合and
条件 ( ('sha1', isnull(tgt.field, '')) != hash('sha1', isnull(src.field, ''))
.
示例中实际失败的是and
条件而不是匹配本身。在这种情况下,会执行插入not matched by target
吗?
sql-server - 使用 MERGE 删除数据,或插入
从 UI 我将数据表传递给存储过程。该参数的类型是具有以下结构的用户定义表字段
这些数据需要入表,表中存在但数据表中不存在的数据应该被删除。
示例表数据
我的数据表有 2 行,一个匹配行和一个新行
示例数据表数据
结果是 456/B9 行应该被删除,123/A1 行应该没有任何反应,而应该插入 786/Z6 行。
我相信我可以使用 MERGE 语句,但我不确定如何形成它。
我知道当不匹配时我应该插入但删除部分在哪里进入?
编辑:为了清楚起见,数据表可以包含同一个人键的许多行,但组件键会不同。
示例数据表数据
示例表数据
插入上述数据表后的结果应该是
请注意,123/A1 已被删除,而 456/B9 仍在表中。
sql - SQL 合并与目标不匹配与源不匹配
NOT MATCHED BY SOURCE
vs 和有什么不一样NOT MATCHED BY TARGET
?
例如:
是否WHEN NOT MATCHED BY SOURCE
意味着记录存在于目标中但不存在于源中?- 所以我们可以删除它们?
和WHEN NOT MATCHED BY TARGET
- 意味着记录存在于源中但不存在于目标中?所以我们可以插入它们?