Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/79.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/oracle/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 具有空值的Oracle联接表_Sql_Oracle_Join_Null - Fatal编程技术网

Sql 具有空值的Oracle联接表

Sql 具有空值的Oracle联接表,sql,oracle,join,null,Sql,Oracle,Join,Null,我有两张带唯一键的桌子。下面是表中键的示例 Table A Table B 1 3 2 4 3 4 Null Null Null 我想将表A连接到表B,其中键匹配或表A有空值 The desired result set would be 3 4 Null Null Null 我尝试过a.key为null或a.key=b.key,但这会

我有两张带唯一键的桌子。下面是表中键的示例

Table A                      Table B
1                              3
2                              4
3
4
Null
Null
Null
我想将表A连接到表B,其中键匹配或表A有空值

The desired result set would be
3
4
Null
Null
Null
我尝试过a.key为null或a.key=b.key,但这会返回许多我认为是重复的行。另外,如果do a.key为null或a.key=select b.key from b其中b.key=a.key有效,那么这里有一个奇怪的事情,但我想避免子选择

有什么想法吗?

试试:

SELECT somecolumn
FROM   a
JOIN   b
ON a.somecolumn = b.anothercolumn
UNION ALL
SELECT somecolumn FROM a
WHERE somecolumn is null;

演示:

为什么2个空值为什么不3个空值???看看您的输入和所需的输出,在SQL中不可能做到这一点,在逻辑上也不可能做到这一点。请解释您希望如何操作NULL的规则。在所需结果中应为三个NULL。