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

FireBird Q&A
[3393] Re:concatination으로 필드를 연결한후 where절에 사용할수는 없는지요?
까막.윤창희 [ggamagui] 2364 읽음    2010-03-23 09:57
박태성 님이 쓰신 글 :
: select tel || name as Total, tel, name from client where total like '홍길동'
:
: 이런식으로 컬럼2개를 연결후 Total이라고 이름을 만들어준후 이필드에서 검색값을 찾고
:
: 싶은데 Total이라는 컬럼명을 알수 없다는 에러가 나면서 퀴리가 실행되지 않는군요
:
: 고객조회 퀴리를 만들고 있는데  전체컬럼에서 단일 값을 주고 검색을 해 볼려고 하니 잘 안되는군요
:
: (MS Access에서는 이런식으로 임시로 만든 컬럼명으로 퀴리가 가능했었는데 파이어버드에서는
:
: 안된는건가요?)
:
:
: 전체 컬럼에서 조회를 할려고 하면 조건식을 여러개 주는것보다 이게 편할것 같은데요
:
: ex1)
: select Tel, Name from client where (Tel like '홍길동%') or (Name like '홍길동%');
:
: ex2)
: select Tel || Name as Total, Tel, Name from client where total like '홍길동%'
:
: 찾고자하는 컬럼이 많을 경우 2번의 경우가 편할것 같은데 방법이 없습니까?


안녕하세요. 까막입니다.

가능은 합니다.
WHERE Tel || Name LIKE '홍길동%'
이렇게 하면 됩니다.

그렇지만!!!
위 처럼 하시면 인덱스 활용 가능성은 0% 입니다.
아주아주 나쁜 습관입니다.

물론 그 이전에 Tel 이라는 필드 - 아마 전화번호로 보이는데 - 에 홍길동이라는 값이 들어간다는 것이 더 나쁜 구조로 보이고요.

조건값에 2개 이상의 필드를 합치거나 필드값의 일부를 떼어오는 방식은 절대 사용해서는 안될 방식입니다.
시스템이 심각하게 느려집니다. -> 아마 개발시에는 못 느낄겁니다. 데이터가 작아서.

가능하면 인덱스를 활용할 수 있는 방식으로 구현하는 습관을 들이시길 바랍니다.
실제 인덱스가 없다고 하더라도요.



                                                                                             혼이 살아 있을까.... 대한민국.

+ -

관련 글 리스트
3391 concatination으로 필드를 연결한후 where절에 사용할수는 없는지요? 박태성 2333 2010/03/20
3393     Re:concatination으로 필드를 연결한후 where절에 사용할수는 없는지요? 까막.윤창희 2364 2010/03/23
3396         답변 감사드립니다. 박태성 2332 2010/03/24
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.