条件联接充当主表

时间:2018-09-07 09:48:48

标签: sql sql-server tsql

您好,抱歉,我找不到找到所需标题的最佳方法。

无论如何,我对如何做有一个主意,但是我只需要一双新的眼睛就能看到我正在尝试做的事情,看看是否有可能。我基本上有两个表,一个表包含大量的文本和数字,另一个表的作用类似于主表,因此,如果在第二个表中找到任何内容,则使用该表,否则仅使用在第一个表中找到的内容。但是我不确定如何为此完成select语句,我知道我可以沿着做两个单独的select语句并将它们结合在一起的路线走下去,但是必须有一个更简单的方法。玩了之后,我有一个查询,我认为这可能有效,但是我不确定是否错过了什么。例如,我们有表A和表B(B存放主数据)

SELECT DISTINCT
   A.ID, 
   COALESCE(B.PROD, A.PROD) AS PROD
   COALESCE(B.TEXT1, A.TEXT1) AS TEXT1, 
   COALESCE(B.NUMBER, A.NUMBER) AS NUMBER
FROM
   TABLEA A
   FULL OUTER JOIN TABLEB B ON A.PROD = B.PROD

现在我要的是声明以获取以下信息

  • 在表A中找到的所有内容,但在表B中找不到的
  • 表B中未找到的任何内容
  • 表B中作为主数据的任何内容 在表A中

我添加了一个完整的外部联接,因为表B中可能没有表A中的项目

查询是否可以正常工作,我已经对数据进行了核对,并且似乎可以正常工作,但是我不确定是否错过了一些事情。

谢谢

0 个答案:

没有答案