需要在 Oracle 和 SQL 服务器之间与数据库无关,尽管我也不介意听到特定于 SQL 服务器的示例。
我确定标题根本不清楚,所以让我解释一下我的想法。我在想两个问题。第一个可能会从给定表中提取一堆数据,包括主键。第二个只会拉入每个主键并将所有其他列留空。
然后我想以这样一种方式将它们联合在一起,即每当第一个查询中缺少主键时,第二个查询中的行就会被拉入。否则,如果主键存在于第一个查询中,则来自的行第二个查询被忽略。
快速示例:
第一个查询拉入两列(第一列是主键):
1 1
2 1
第二个查询拉进来:
1 NULL
2 NULL
3 NULL
所以我希望整个查询都可以加入:
1 1
2 1
3 NULL
在性能方面,实现这一目标的最佳方法是什么?考虑一个示例,其中可能有大量的行和列,并且第一个查询可能非常耗费性能(尽管第二个当然应该总是很简单,只需从列表中提取主键并填充其余部分列输出为 NULL 或静态值)。