如何避免在SQL Server中重复插入动态值

里娅·欧贝罗伊(Reeya Oberoi)

我想编写一个查询来插入动态值(如果它们已经不存在)。到目前为止,我已经尝试过了。

INSERT MTB_AML..tb_aml_codes (aml_code, aml_desc)

    SELECT 'NRA', 'Non-Resident Alien'
    UNION
    SELECT 'DOM', 'Resident Alien'
    FROM MTB_AML..tb_aml_codes t1
    WHERE t1.aml_code NOT IN (SELECT t2.aml_code from MTB_AML..tb_aml_codes t2)

但这仅返回上选择(已存在于表中)。我究竟做错了什么?

汤姆·佩奇

我认为您遇到的问题是,在您的版本中,WHERE子句仅适用于UNION子句中的最后一个Select。

记录您想要的记录

 SELECT 'NRA' AS aml_code, 'Non-Resident Alien' AS aml_desc
    UNION 
 SELECT 'DOM' AS aml_code, 'Resident Alien' AS aml_desc

然后将它们包装为一个子查询(在示例中别名为[src]),然后可以检查目标表中哪些键没有匹配的键(别名为[dst])

INSERT MTB_AML..tb_aml_codes (aml_code, aml_desc)
SELECT src.aml_code, src.aml_desc
(
    SELECT 'NRA' AS aml_code, 'Non-Resident Alien' AS aml_desc
    UNION 
    SELECT 'DOM' AS aml_code, 'Resident Alien' AS aml_desc
) src
WHERE src.aml_code NOT IN (SELECT dst.aml_code from MTB_AML..tb_aml_codes dst)

就我个人而言,我会像这样通过左连接来完成此操作,但这取决于您

  INSERT MTB_AML..tb_aml_codes (aml_code, aml_desc)
SELECT src.aml_code, src.aml_desc
FROM
(
    SELECT 'NRA' AS aml_code, 'Non-Resident Alien' AS aml_desc
    UNION 
    SELECT 'DOM' AS aml_code, 'Resident Alien' AS aml_desc
) src
LEFT JOIN MTB_AML..tb_aml_codes dst
ON dst.aml_code = src.aml_code
WHERE dst.aml_code IS NULL

两者都可以,但是如果您必须在多列键上进行匹配,则需要使用join方法

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何避免在表类型sql server中插入重复记录

来自分类Dev

SQL重复,如何避免查询?

来自分类Dev

避免在SQL插入中重复预定义值

来自分类Dev

在以下SQL场景中如何避免重复

来自分类Dev

如何避免在MySQL中插入重复项?

来自分类Dev

SQL查询重复的“ AND”查询,如何避免呢?

来自分类Dev

如何使用python脚本在SQL Server数据库中动态插入变量的值

来自分类Dev

尝试将值插入sql时如何避免以下错误?

来自分类Dev

如何避免重复值?

来自分类Dev

SQL Server查询中的重复时间戳:如何添加毫秒数并避免重复?

来自分类Dev

如何避免在SQL中的While循环

来自分类Dev

如何避免SAS中的proc sql

来自分类Dev

如何避免在SQL中的While循环

来自分类Dev

如何避免SQL查询中的计算列重复计算

来自分类Dev

如何避免.each方法中的重复值

来自分类Dev

如何避免在 MongoDB 中使用 db.insertMany() 在集合中插入重复值?

来自分类Dev

使用asp.net在数据库中插入数据时如何避免重复值?

来自分类Dev

如何使 MongoDB 的列成为 SQL Server 中的主键并避免重复记录?

来自分类Dev

如何动态准备SQL查询(也是列名),避免SQL注入

来自分类Dev

如何避免SQL Server中的一列中的数据

来自分类Dev

SQL Server:如何在动态选择中插入变量

来自分类Dev

SQL Server:使用一个动态查询、常量等将值插入到表中

来自分类Dev

如何在 SQL Server 中使用用户定义的表类型插入数据时避免重复记录

来自分类Dev

如何避免重复的列值

来自分类Dev

在 CASE SQL SERVER 中避免 NULL 值

来自分类Dev

如何进行批量插入同时避免在Postgresql中重复

来自分类Dev

如何最好避免在CakePHP中插入重复记录?

来自分类Dev

如何通过流插入避免在BigQuery中重复

来自分类Dev

如何最好避免在CakePHP中插入重复记录?

Related 相关文章

  1. 1

    如何避免在表类型sql server中插入重复记录

  2. 2

    SQL重复,如何避免查询?

  3. 3

    避免在SQL插入中重复预定义值

  4. 4

    在以下SQL场景中如何避免重复

  5. 5

    如何避免在MySQL中插入重复项?

  6. 6

    SQL查询重复的“ AND”查询,如何避免呢?

  7. 7

    如何使用python脚本在SQL Server数据库中动态插入变量的值

  8. 8

    尝试将值插入sql时如何避免以下错误?

  9. 9

    如何避免重复值?

  10. 10

    SQL Server查询中的重复时间戳:如何添加毫秒数并避免重复?

  11. 11

    如何避免在SQL中的While循环

  12. 12

    如何避免SAS中的proc sql

  13. 13

    如何避免在SQL中的While循环

  14. 14

    如何避免SQL查询中的计算列重复计算

  15. 15

    如何避免.each方法中的重复值

  16. 16

    如何避免在 MongoDB 中使用 db.insertMany() 在集合中插入重复值?

  17. 17

    使用asp.net在数据库中插入数据时如何避免重复值?

  18. 18

    如何使 MongoDB 的列成为 SQL Server 中的主键并避免重复记录?

  19. 19

    如何动态准备SQL查询(也是列名),避免SQL注入

  20. 20

    如何避免SQL Server中的一列中的数据

  21. 21

    SQL Server:如何在动态选择中插入变量

  22. 22

    SQL Server:使用一个动态查询、常量等将值插入到表中

  23. 23

    如何在 SQL Server 中使用用户定义的表类型插入数据时避免重复记录

  24. 24

    如何避免重复的列值

  25. 25

    在 CASE SQL SERVER 中避免 NULL 值

  26. 26

    如何进行批量插入同时避免在Postgresql中重复

  27. 27

    如何最好避免在CakePHP中插入重复记录?

  28. 28

    如何通过流插入避免在BigQuery中重复

  29. 29

    如何最好避免在CakePHP中插入重复记录?

热门标签

归档