我想写一个给出以下结果的sql。这可能吗?我尝试使用 UNION,但它只适用于一条记录。
col1 | col2 | col3 | col4 -------------------------- 一个 | 10 | | | 2 | val1 | val2 | 5 | val3 | val4 | 3 | val5 | val6 乙| 11 | | | 3 | val7 | val8 | 5 | val9 | val10 | 3 | val0 | val12
这是我的查询:
SELECT a.val1, NULL val2, a.val3 FROM table1 a
WHERE a.val1 = 'A'
UNION
SELECT NULL val1, b.val2, b.val3 FROM table2 b
WHERE b.val1 = 'A' ;
也许这会使问题更清楚。
想象一下,如果我运行查询:
SELECT a.val1, NULL val2, a.val3 FROM table1 a
UNION
SELECT NULL val1, b.val2, b.val3 FROM table2 b ;
我希望结果集如上图所示。
col1 | col2 | col3 | col4 -------------------------- 一个 | 10 | | | 2 | val1 | val2 | 5 | val3 | val4 | 3 | val5 | val6 乙| 11 | | | 3 | val7 | val8 | 5 | val9 | val10 | 3 | val0 | val12