我正在同一张表上进行JOIN操作,但条件不同。
加入后的最终结果如下:
Col1 Col2 Col3 Col4 Col5 Col6
NULL NULL NULL ValR ValR ValR
NULL NULL NULL ValR ValR ValR
NULL NULL NULL ValR ValR ValR
NULL NULL NULL ValR ValR ValR
NULL NULL NULL ValR ValR ValR
ValL ValL ValL NULL NULL NULL
ValL ValL ValL NULL NULL NULL
ValL ValL ValL NULL NULL NULL
ValL ValL ValL NULL NULL NULL
ValL ValL ValL ValR ValR ValR
ValL ValL ValL ValR ValR ValR
ValL ValL ValL ValR ValR ValR
我有上面的结果表。现在,在最终输出中,我想将所有记录(大概)打印在新的单个非空列表中。
对于同时具有ValL和ValR的情况,我只想采用ValR(所以是完全正确的外部联接)。但是我否则想遇到ValL(当ValR为NULL时)和ValR(当ValL为NULL时)-因此简而言之是“内部联接”的反函数。
这是我的伪查询的样子:
SELECT * from table where condition == false; // prints ValL part join type = full outer SELECT * from table where condition == true; // prints ValR part
有人可以告诉我该怎么做吗?
我正在同一张表上进行JOIN操作,但条件不同。加入后的最终结果如下:Col1 Col2 Col3 Col4 Col5 Col6 NULL NULL NULL ValR ValR ValR ...
如果只想对齐任意真假条件,则可以使用聚合: