2011-06-13 5 views
1

하나의 테이블에 5 개의 열이 있습니다. 다중 영역 검색을 수행하려고합니다. 그것은테이블의 모든 열에서 문자열을 검색해야합니다.

Table - T 
colmun - TC1 , TC2 , TC3 , TC4 , TC5 

실제 쿼리

select * from T 
where TC1='search' or TC2='search' or TC3='search' 
     or TC4='search' or TC5='search' or 

예상 쿼리

select * from T where <single condition > in ("searc") 

답변

1

당신은 검색 할 열 목록을 지정하여 여러 열을 쿼리 CONTAINS 조건 사용할 수 있습니다 ... 가능합니다. 열은 동일한 테이블에 있어야합니다.

select * from T where CONTAINS((TC1, TC2, TC3, TC4, TC5), 'search') 
0

CASE 문을 사용하는 경우 'search' 매개 변수를 한 번만 지정하면됩니다.

select * 
from T 
where case 'search' 
     when TC1 then 1 
     when TC2 then 1 
     when TC3 then 1 
     when TC4 then 1 
     when TC5 then 1 
     else 0 
     end = 1 
관련 문제