【问题标题】:How to use insert statement instead of this merge statement [closed]如何使用插入语句而不是此合并语句 [关闭]
【发布时间】:2019-01-04 06:58:11
【问题描述】:

我在脚本中有合并语句,但我想知道如何为脚本编写插入语句。让我用代码解释一下 在下面的代码中,我有 2 个条件,一个与目标不匹配,@column=1

如果我想为此写一个插入语句,我必须写什么

WHEN NOT MATCHED BY TARGET AND (@abcd = 1)
        THEN
            INSERT (columns)
            VALUES (columns)

【问题讨论】:

  • 你试过看documentation吗?
  • 你的合并基于什么?您如何确定何时插入/不插入?
  • 什么时候插入,就像我这里有两个条件如果没有条件我可以写插入到tableA中选择cols from TableB b where not exists(select col from TableA a where a.id=b. id) 这里我有两个条件不匹配目标和@abcd=1
  • 样本数据和预期结果将帮助我们了解您的要求

标签: sql sql-server merge


【解决方案1】:

你能澄清一下你的要求吗?

我确实理解了所有内容,但我认为如果 TAB_B 中不存在 id 并且如果参数 @abcd = 1 则您想插入 TAB_A 中,因此相关查询是:

INSERT INTO TAB_A(IdCol, SomeCol)
SELECT IdCol, SomeCol
FROM TAB_K 
WHERE IdCol NOT IN (SELECT IdCol FROM TAB_B) AND @abcd = 1

或者,如果您没有 TAB_K:

INSERT INTO TAB_A(IdCol, SomeCol)
SELECT '1','SomeColToAdd'
WHERE '1' NOT IN (SELECT IdCol FROM TAB_B) AND @abcd = 1

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-09-14
    • 1970-01-01
    • 1970-01-01
    • 2017-03-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多