在 DB2 表上使用 OUTER JOIN 的限制是什么?
OUTER JOIN 的结果包括 WHERE 子句中匹配的行和不匹配的行。DB2 中的 OUTER JOIN 主要有两个限制。
- OUTER JOIN 的 WHERE 子句只能使用“=”关系运算符。在两个或多个表的 OUTER JOIN 中,不允许使用 <、> 等。此外,WHERE 子句中的两个或多个条件只能与 AND 逻辑运算符一起使用,其他逻辑运算符(如 OR、NOT)不允许使用。
- 处理 NULL 运算符的函数(如 VALUE 和 COALESCE)不能与 OUTER JOIN 一起使用。
例如,如果我们有两个 DB2 表,分别存储订单和交易详细信息。
订单 ID | 交易 ID | 订单日期 |
Z22345 | ITX4489 | 23-10-2020 |
Z62998 | ITX4311 | 21-10-2020 |
Z56902 | ITX3120 | 26-10-2020 |
交易 ID | 交易金额 | 交易订单日期 |
ITX4489 | 1128 | 24-10-2020 |
ITX4311 | 2318 | 17-10-2020 |
ITX3120 | 88956 | 26-10-2020 |
ITX2167 | 5612 | 12-10-2020 |
这两个表的 OUTER JOIN 可以如下完成。
示例
SELECT A.ORDER_ID, B.TRANSACTION_ID, B.TRANS_AMT FROM ORDERS A FULL OUTER JOIN TRANSACTION B ON B.TRANS_ORDER_DT = A.ORDER_DATE
但是,在全外部联接时,比较 TRANS_ORDER_DT 和 ORDER_DATE 时,不能使用 > 或 < 关系运算符。
广告