如果存在表 B,则从表 B 中获取数据,否则保留表 A(在某些列之后)

Posted

技术标签:

【中文标题】如果存在表 B,则从表 B 中获取数据,否则保留表 A(在某些列之后)【英文标题】:Take data from Table B if it exists, else keep Table A (following some columns) 【发布时间】:2021-05-30 22:54:12 【问题描述】:

我正在尝试实现示例中的内容,其想法是从表 B 中获取数据(如果存在),并且与列 col1=col3 和 col2=col4 相关。 不确定这是否可能使用 SQL


col1  col2   
a     b      
c     d    
e     f         

Table B:

col3 col4   
NULL  x      
y     NULL    
NULL  NULL         


Final_Table:

col1  col2   
a     x      
y     d    
e     f 

【问题讨论】:

看看coalesce (db2tutorial.com/db2-basics/db2-coalesce) SQL 表不是电子表格,它是一个集合。表中没有 Nth 行,因此在没有任何通用唯一标识符之前,无法将 this 行的内容替换为 that 行的内容。 也许使用游标? 您的问题似乎假定了行的顺序。但是 SQL 表代表 无序 集。除非列指定排序,否则没有排序。 这个问题在关系数据库中没有意义。正如@astentx 所说,关系表不是电子表格。投票结束。 【参考方案1】:

您需要有一个主键来比较两个或多个表。如果没有主键是不可能的。

【讨论】:

任何匹配规则都可以,即使它是一个排序人工键。

以上是关于如果存在表 B,则从表 B 中获取数据,否则保留表 A(在某些列之后)的主要内容,如果未能解决你的问题,请参考以下文章