SQL从2个具有优势的表中选择

Bob*_*bit 1 sql sql-server

任何人都可以帮助在1 sql语句中获得此结果吗?
我有2个表,第二个表比第一个表占优势 - 如下:

表A

Code  |  Quantity
  1         5
  3         5
  4         5
Run Code Online (Sandbox Code Playgroud)

表B

Code  |  Quantity
  1         5
  2         1
  4         6
Run Code Online (Sandbox Code Playgroud)

查询结果

Code  |  Quantity
  1         5   - code exists in both - return record from TableB
  2         1   - distinct only in TableB
  3         5   - distinct only in TableA
  4         6   - code exists in both - return record from TableB
Run Code Online (Sandbox Code Playgroud)

感谢您的帮助.谢谢!

Gio*_*sos 6

A FULL JOIN会做:

SELECT COALESCE(t1.Code, t2.Code) AS Code,
       COALESCE(t2.Quantity, t1.Quantity) AS Quantity
FROM TableA AS t1 
FULL OUTER JOIN TableB AS t2 ON t1.code = t2.code
Run Code Online (Sandbox Code Playgroud)

COALESCE(t2.Quantity, t1.Quantity)基本上实现了您的需求"主导地位"TableBTableA:Quantity从捡到TableA只有在情况下,有没有匹配的记录TableB.

有关如何FULL JOIN工作的解释,您可以在这里查看:

FULL OUTER JOIN,包括两个表中的所有行,无论另一个表是否具有匹配值.