SELECT B.UOM
,B.QTY
,NVL(M.WGT_UOM, 'KG') AS WGT_UOM
FROM B_ORD B
,M_ORD M
WHERE B.NO = '108'
AND B.DRDR = ' '
AND B.KND IN ('EAC')
--요기요.
AND B.M_NO LIKE CASE WHEN M.MSCC = 'D' THEN '108A1%'
ELSE 'A1%'
END
--해석이 안되요.
AND B.M_NO = M.M_NO ;
위의 SQL이 있는데요.
플랜을 보면
B_ORD 테이블이 먼저 풀리고 M_ORD가 풀리는 형태입니다.
상식적으로 보면 M.MSCC가 있어서 먼저 풀려야 되질 않나 싶은데
옵티마이져는 B_ORD를 먼저 선택을 하네요.
위 내용의 구문을 어떻게 해석해야 하나요?
아무리 봐도 무슨 작업을 할려고 하는지 이해가 안가서요.?
다르게 고친다면 ? ^^;
|