Join 如何在一个条件下连接两个表
Inst_计数和Inst_类型必须始终相等。 但Card_Group和Txn_Type列必须在另一个表中与默认值(-1)匹配(如果不存在)。 如何编写这个sql?Join 如何在一个条件下连接两个表,join,plsql,conditional-statements,Join,Plsql,Conditional Statements,Inst_计数和Inst_类型必须始终相等。 但Card_Group和Txn_Type列必须在另一个表中与默认值(-1)匹配(如果不存在)。 如何编写这个sql? 谢谢。这里我们使用的是外部联接,它将所有表的值设置为一个结果集(您也可以使用联合所有)。然后,我们对每个表使用左连接,以确保每个列都有其值,而其他列则没有。现在,您可以使用自己的查询尝试此操作。如果你不能达到你的目标,那么我建议你收集你的样本到DBFIDLE链接。然后我们可以做进一步的解释 TABLO1 Inst_count
谢谢。这里我们使用的是
外部联接
,它将所有表的值设置为一个结果集(您也可以使用联合所有
)。然后,我们对每个表使用左连接,以确保每个列都有其值,而其他列则没有。现在,您可以使用自己的查询尝试此操作。如果你不能达到你的目标,那么我建议你收集你的样本到DBFIDLE链接。然后我们可以做进一步的解释
TABLO1
Inst_count Inst_Type Card_Group Txn_Type Comm_rate
---------- --------- ---------- -------- ---------
2 N -1 -1 1,70
2 N 36 -1 1,71
2 N 37 -1 1,72
2 V -1 -1 1,73
2 V 36 -1 1,74
2 V 37 -1 1,75
TABLO2
Inst_count Inst_Type Card_Group Txn_Type Isk_rate Day
---------- --------- ---------- -------- -------- ---
2 N -1 -1 1,0 10
2 N 36 -1 1,1 11
2 N 37 -1 1,2 12
2 V -1 -1 1,3 13
2 V 36 -1 1,4 14
2 V 38 -1 1,5 15
Result_Table
Inst_count Inst_Type TABLO1.Card_Group TABLO2.Card_Group TABLO1.Txn_Type TABLO2.Txn_Type Isk_rate Day Comm_rate
---------- --------- ----------------- ----------------- --------------- --------------- -------- --- ---------
2 N -1 -1 -1 -1 1,0 10 1,70
2 N 36 36 -1 -1 1,1 11 1,71
2 N 37 37 -1 -1 1,2 12 1,72
2 V -1 -1 -1 -1 1,3 13 1,73
2 V 36 36 -1 -1 1,4 14 1,74
2 V -1 38 -1 -1 1,5 15 1,73
2 V 37 -1 -1 -1 1,3 13 1,75
霍卡蒙塞利克勒索克·泰克勒。在尤卡里达,科努尤·克拉玛亚·阿尔·塔伊姆·德塔伊尔·比尔基尔·德拉伊尔·科努尤·克拉玛亚·阿尔·塔伊姆·尤卡里达(Daha detaylıbirşekilde konuyu aıkarıda)。Yorumlarınırica edeceğim:)Şimdiden teşekküller。如果您仅使用Card_Group和Card_Group将这两个表合并,您的查询将变得复杂。在我的示例中,我将解释如何使用sql。检查一下。
SELECT DISTINCT NVL (A.COL1, A1.COL1) COL1A,
NVL (B.COL1, B1.COL1) COL1B,
NVL (A.COL2, A1.COL2) COL2,
NVL (A.COL3, A1.COL3) COL3,
NVL (B.COL3, B1.COL3) COL4
FROM TABLEA A
FULL OUTER JOIN TABLEB B ON B.COL1 = A.COL1
LEFT OUTER JOIN TABLEB B1 ON B1.COL1 = -1
LEFT OUTER JOIN TABLEA A1 ON A1.COL1 = -1