2011-06-13 62 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 
相关问题