我想创建一个SQL查询(使用Oracle),我将两个值组合在一起,每个列存在于不同的表中(它们由CODE连接)。这是我到目前为止的查询:
SELECT COALESCE(a.SERIES1,b.SERIES2)
FROM TABLE1 a, TABLE2 b
WHERE a.CODE = b.CODE
但是,当我将列连接在一起时,我也想返回null。我想我只得到SERIES1 = SERIES2的实例......
理想情况下,我希望得到以下内容:
我希望我明白这一点,并且我正在使用正确的术语......
谢谢!
答案 0 :(得分:2)
我认为问题不在于COALESCE
,而在于您进行加入的方式。您可能正在寻找外部联接,而您进行了内部联接。
尽管Oracle有自己的语法来执行外连接(例如,通过列出两个表并将连接条件放在WHERE
子句中),但应首选ANSI语法:
SELECT COALESCE(a.SERIES1,b.SERIES2)
FROM TABLE1 a
FULL OUTER JOIN TABLE2 b ON a.CODE = b.CODE