我有表 A
和表 B
,我需要在其中过滤掉表 A
中的行以及表 B
中某些列上的匹配值。
以下是一些需要检查和过滤的条件:
1. A.c1 = B.c1, A.c2 = B.c2, A.c3 = B.c3, A.c4 = B.c4, A.c5 = B.c5
2. A.c1 = 'ALL', A.c2 = B.c2, A.c3 = B.c3, A.c4 = B.c4, A.c5 = B.c5
3. A.c1 = 'ALL', A.c2 = 'ALL', A.c3 = B.c3, A.c4 = B.c4, A.c5 = B.c5
4. A.c1 = 'ALL', A.c2 = 'ALL', A.c3 = 'ALL', A.c4 = B.c4, A.c5 = B.c5
5. A.c1 = 'ALL', A.c2 = B.c2, A.c3 = 'ALL', A.c4 = B.c4, A.c5 = B.c5
6. ....
32. A.c1 = 'ALL', A.c2 = 'ALL', A.c3 = 'ALL', A.c4 = 'ALL', A.c5 = 'ALL'
当 A.cX 为“ALL”时,我们匹配表 B 的其他条件并过滤行。
以 32 的所有组合依此类推。
编写 SQL 查询或数据框操作的有效方法是什么。
Example Filtered output