Delphi Programming Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
델파이 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
컴포넌트/라이브러리
FreePascal/Lazarus
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
델마당
볼랜드포럼 광고 모집

델파이 Q&A
Delphi Programming Q&A
[8885] Re:[질문]두개의 테이블 조인후 LIKE문을 사용하려는데요...
류종택 [ryujt] 890 읽음    2003-07-24 23:32
( 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%')

+ -

관련 글 리스트
8884 [질문]두개의 테이블 조인후 LIKE문을 사용하려는데요... 델파이 시작해보렵니 619 2003/07/24
8885     Re:[질문]두개의 테이블 조인후 LIKE문을 사용하려는데요... 류종택 890 2003/07/24
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.