BBB_TBL 의 CUST_ID가 NULL이 아니면, CUST_ID로 비교하고,
CUST_ID가 NULL이면, SVC_ID로 비교하려고 합니다.
아래 세가지중 어떤 것이 맞을까요?
혹시, 1번으로 하면 안되는 이유 있을까요??
(초보라 죄송합니다. )
1) SELECT *
FROM AAA_TBL AAA, BBB_TBL BBB
WHERE ((BBB.CUST_ID IS NOT NULL AND AAA.CUST_ID = BBB.CUST_ID ) OR ( BBB.CUST_ID IS NULL AND AAA.SVC_ID = BBB.SVC_ID)) ;
2) SELECT *
FROM AAA_TBL AAA, BBB_TBL BBB
WHERE CASE WHEN BBB.CUST_ID IS NOT NULL THEN AAA.CUST_ID = BBB.CUST_ID
WHEN BBB.CUST_ID IS NULL THEN AAA.SVC_ID = BBB.SVC_ID
END
3) SELECT *
FROM AAA_TBL AAA, BBB_TBL BBB
WHERE ( CASE WHEN BBB.CUST_ID IS NOT NULL AND AAA.CUST_ID = BBB.CUST_ID THEN 'OK'
WHEN BBB.CUST_ID IS NULL AND AAA.SVC_ID = BBB.SVC_ID THEN 'OK'
END ) = 'OK'