在DB2表上使用OUTER JOIN有什么限制?

OUTER JOIN的结果在WHERE子句中包含匹配和不匹配的行。DB2中OUTER JOINS有两个主要限制。

  • OUTER JOIN的WHERE子句只能具有'='关系运算符。如果两个或多个表的OUTER JOIN不允许使用<,>等。同样,WHERE子句中的两个或更多条件只能与AND逻辑运算符一起使用,不允许使用其他逻辑运算符,例如OR,NOT。

  • 处理NULL运算符的函数(例如VALUE和COALESCE)不能与OUTER JOINS一起使用。

例如,如果我们有下面2个DB2表,分别存储ORDERS和TRANSACTION详细信息。


ORDER_ID
TRANSACTION_ID
订购日期
Z22345
ITX4489
2020年10月23日
Z62998
ITX4311
2020年10月21日
Z56902
ITX3120
2020年10月26日

 

TRANSACTION_ID
TRANS_AMT
TRANS_ORDER_DT
ITX4489
1128
2020年10月24日
ITX4311
2318
2020年10月17日
ITX3120
88956
2020年10月26日
ITX2167
5612
2020年12月10日


这两个表中的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时,我们不能给出>或<关系运算符。

猜你喜欢