( di_num like '%393-982-01-01%') 이부분을
((EMain.dwg_num like '??') and (ESub.item_num = '???'))
와 같은 식으로 변경해보세요..
참고로..
Where 절에서..
조건식의 왼쪽은 계산등을 하여 필드를 변형하면 좋지 않습니다..
인덱스가 있다고 해도..
인덱스의 효과도 없고해서..
추천할 수 없는 방식입니다..
예를 들어..
where a*10 > 90 보다는..
where a > 9
와 같은 식으로 해야 합니다..
질문하신 쿼리는 필드를 변형 및 계산을 하기 때문에..
쿼리를 문법적으로 올바르게 고친다고 해도 효율이 떨어지게 됩니다..
물론 인덱스 또는 클러스터가 없을 시에는..
별로 상관없습니다..
델파이 시작해보렵니 님이 쓰신 글 :
: 두개의 테이블을 조인하여 CONCAT으로 di_num 이라는 것을 만들고 그것을 통해 LIKE 문을 돌리려 하면 안되는 건가요? 자꾸 'where clause'라는 에러 메세지가 뜨네요..사용할수 있는지 여부를 알고 싶습니다.
:
: SELECT * ,concat(EMain.dwg_num,'-',ESub.item_num) as di_num
: FROM
: epl_main as EMain,
: epl_sub as ESub
: WHERE
: (EMain.main_id = ESub.sub_id) and ( di_num like '%393-982-01-01%')
|