- 论坛徽章:
- 0
|
很简单的,基本的FULL JOIN就可以实现了。
CREATE TABLE A(A int,B int, C int, D nvarchar(5))
INSERT INTO A
SELECT 1, 1, 1, \'a\' UNION ALL
SELECT 2, 2, 2, \'b\' UNION ALL
SELECT 3, 3, 3, \'c\'
CREATE TABLE B(A int,B int, C int, E nvarchar(5))
INSERT INTO B
SELECT 1, 1, 1, \'x\' UNION ALL
SELECT 2, 2, 2, \'y\' UNION ALL
SELECT 4, 4, 4, \'z\'
SELECT
CASE WHEN A.A IS NULL THEN B.A ELSE A.A END AS A,
CASE WHEN A.B IS NULL THEN B.B ELSE A.B END AS B,
CASE WHEN A.C IS NULL THEN B.C ELSE A.C END AS C,
A.D,B.E
FROM A FULL JOIN B ON A.A=B.A AND A.B=B.B AND A.C=B.C
DROP TABLE A,B |
|