SQL查询返回一个表中不存在的行

mb

最近,我犯了一个代价高昂且令人尴尬的错误,我很想知道它是否会再次发生。希望您能帮我...这是发生了什么事。

在PROD部署中,步骤之一是确保所有DEV.code_mapping表行都存在于PROD.code_mapping表中。

为此,我运行了以下查询(Oracle 11g)。我希望它显示DEV.code_mappingPROD.code_mapping中存在的每一行

select * FROM code_mapping D 
where D.source_system_id = '&LHDNUMBER'
and not exists
    (select 1 from
    dm.code_mapping@PROD_CHECK P where
    D.mapping_definition_id = P.mapping_definition_id and
    D.cdm_code = P.cdm_code and
    D.source_system_code = P.source_system_code);

查询返回零结果。

我错误地得出结论,其中的每一行都DEV.code_mapping存在于中PROD.code_mapping

事实证明,实际上表中不存在任何行PROD.code_mapping查询以某种方式没有解决。我认为可能是因为此查询无法针对PROD中的空值求值,但是NVL([column],'null')似乎没有任何语句可以使这项工作有效。

我该如何进行这项工作???

也:

除了查询更正本身之外,我也欢迎您为此类工作提供的最佳实践指导。真的不想再次上演这样的演唱会。

贾斯汀洞穴

就个人而言,我会使用 MINUS

SELECT *
  FROM code_mapping
 WHERE soure_system_id = '&LHDNUMBER'
MINUS
SELECT *
  FROM dm.code_mapping@prod_check

MINUSNULL自动处理比较(NULLNULL上的a自动匹配目标上的a )。

如果要列出两个表之间的所有差异(即列出dev中存在但prod中没有的所有行,而prod但prov中没有的行),则可以添加UNION ALL

(SELECT a.*, 'In dev but not prod' descriptio
   FROM dev_table a
 MINUS 
 SELECT a.*, 'In dev but not prod' description
   FROM prod_table a)
UNION ALL
(SELECT a.*, 'In prod but not dev' descriptio
   FROM prod_table a
 MINUS 
 SELECT a.*, 'In prod but not dev' description
   FROM dev_table a)

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

从表1中选择一个随机行,其中表2中不存在ID

来自分类Dev

SQL-查询返回的行可能不存在

来自分类Dev

删除另一个表中不存在ID的所有行

来自分类Dev

MySQL显示一个表中存在但其他表中不存在的行

来自分类Dev

SQL,如果另一个表中不存在该字段,则选择字段

来自分类Dev

生成一个不存在于SQL Server表中的随机数

来自分类Dev

SQL Server查询:获取另一个表的字段中不存在的列的列表

来自分类Dev

SQL-不存在时不从另一个表中检索记录

来自分类Dev

SQL约束,用于检查另一个表中是否不存在值

来自分类Dev

如何选择另一个表中不存在的行

来自分类Dev

蜂巢表输出显示查询时一个不存在的空值

来自分类Dev

SQL为从另一个表返回的每个ID插入多行,如果该ID不存在该行

来自分类Dev

如果不存在从上一个查询中获取的行,则插入到表值中

来自分类Dev

是否可以编写一个SQL查询来返回另一个表中不存在的值?

来自分类Dev

MySQL:如何仅使用一个查询获取表中不存在的ID的百分比

来自分类Dev

MySQL显示一个表中存在但其他表中不存在的行

来自分类Dev

SQL如何从另一个表中不存在的表中选择

来自分类Dev

SQLite查询选择另一个表中不存在的所有记录

来自分类Dev

SQL,如果另一个表中不存在该字段,则选择字段

来自分类Dev

返回表中的所有字段或返回一个查询中不存在的字段

来自分类Dev

MySQL查询-即使相关表中不存在一个字段,也要返回咨询

来自分类Dev

从另一个表中获取MySQL中两行都不存在的行

来自分类Dev

如何选择另一个表中不存在的行

来自分类Dev

分解一个sql表,并为不存在的每一天插入一行

来自分类Dev

如何在一个SELECT查询中区分“不存在子行”和“不存在父行”?

来自分类Dev

SQL查询以显示包含两个表且其他表中不存在的数据行

来自分类Dev

如何检索 SQL Server 中一个表的任何字段中不存在的数据?

来自分类Dev

如果标识符不存在于另一个表中,则删除表中的行

来自分类Dev

MySQL 查询不存在于另一个表中

Related 相关文章

  1. 1

    从表1中选择一个随机行,其中表2中不存在ID

  2. 2

    SQL-查询返回的行可能不存在

  3. 3

    删除另一个表中不存在ID的所有行

  4. 4

    MySQL显示一个表中存在但其他表中不存在的行

  5. 5

    SQL,如果另一个表中不存在该字段,则选择字段

  6. 6

    生成一个不存在于SQL Server表中的随机数

  7. 7

    SQL Server查询:获取另一个表的字段中不存在的列的列表

  8. 8

    SQL-不存在时不从另一个表中检索记录

  9. 9

    SQL约束,用于检查另一个表中是否不存在值

  10. 10

    如何选择另一个表中不存在的行

  11. 11

    蜂巢表输出显示查询时一个不存在的空值

  12. 12

    SQL为从另一个表返回的每个ID插入多行,如果该ID不存在该行

  13. 13

    如果不存在从上一个查询中获取的行,则插入到表值中

  14. 14

    是否可以编写一个SQL查询来返回另一个表中不存在的值?

  15. 15

    MySQL:如何仅使用一个查询获取表中不存在的ID的百分比

  16. 16

    MySQL显示一个表中存在但其他表中不存在的行

  17. 17

    SQL如何从另一个表中不存在的表中选择

  18. 18

    SQLite查询选择另一个表中不存在的所有记录

  19. 19

    SQL,如果另一个表中不存在该字段,则选择字段

  20. 20

    返回表中的所有字段或返回一个查询中不存在的字段

  21. 21

    MySQL查询-即使相关表中不存在一个字段,也要返回咨询

  22. 22

    从另一个表中获取MySQL中两行都不存在的行

  23. 23

    如何选择另一个表中不存在的行

  24. 24

    分解一个sql表,并为不存在的每一天插入一行

  25. 25

    如何在一个SELECT查询中区分“不存在子行”和“不存在父行”?

  26. 26

    SQL查询以显示包含两个表且其他表中不存在的数据行

  27. 27

    如何检索 SQL Server 中一个表的任何字段中不存在的数据?

  28. 28

    如果标识符不存在于另一个表中,则删除表中的行

  29. 29

    MySQL 查询不存在于另一个表中

热门标签

归档