合并和空值

COALESCE and NULL

我想创建一个 SQL 查询(使用 Oracle),我在其中组合 2 列的值,每列都存在于不同的表中(它们由 CODE 连接)。这是我到目前为止的查询:

SELECT COALESCE(a.SERIES1,b.SERIES2)
FROM TABLE1 a, TABLE2 b
WHERE a.CODE = b.CODE

但是,当我将列连接在一起时,我也想 return 为空。我想我只得到 SERIES1 = SERIES2...

的实例

理想情况下,我想得到以下内容:

我希望我说清楚了并且我使用了正确的术语...

谢谢!

我认为问题不在于 COALESCE,而在于您进行联接的方式。看起来您可能正在寻找 外连接,而您却在寻找 内连接

虽然 Oracle 有自己的语法来按照您的方式进行外部连接(即通过列出两个表并将连接条件放在 WHERE 子句中),但应该首选 ANSI 语法:

SELECT COALESCE(a.SERIES1,b.SERIES2)
FROM TABLE1 a
FULL OUTER JOIN TABLE2 b ON a.CODE = b.CODE