需要在表中的所有列中搜索字符串

时间:2011-06-13 19:37:44

标签: sql sql-server

我在一个表中有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") 

2 个答案:

答案 0 :(得分:1)

您可以使用CONTAINS谓词通过指定要搜索的列列表来查询多个列。列必须来自同一个表。

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

答案 1 :(得分: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