SQL查询帮助:需要检查一个字段中是否存在多个字符串

时间:2016-04-22 07:04:49

标签: sql

员工数据库的示例数据,列:职位>>>

  1. 营销总监
  2. 导演
  3. 营销总监
  4. 销售经理
  5. 销售总监
  6. 需要有关查询的帮助,该查询将过滤具有文本字符串的所有联系人行" Market"和"导演"在列位置。因此,如果我通过示例数据运行它,将返回第1行和第3行。

    到目前为止我的解决方案:

        WHERE (employees.position LIKE '%Market%' AND employees.position LIKE '%director%')
    

    是否有更简洁的方法来编写此代码,因为我还想添加其他位置前缀,例如""和#34;副总统"。

        WHERE (employees.position LIKE '%Market%' AND (employees.position LIKE '%director%' OR employees.position LIKE '%vice president%' OR employees.position LIKE '%head of%'))
    

    还有一种更简单的方式来写这个吗?

2 个答案:

答案 0 :(得分:0)

您可以尝试这样的事情

declare @filter varchar(1000)
set @filter=',director,vice president,head of,'
SELECT ........
WHERE (employees.position LIKE '%Market%' AND 
(
@fliter like '%,'+employees.position+',%'
)

答案 1 :(得分:0)

我认为你需要的是一个简单的OR标准列表而不是AND。

如果你想要任何一个ex:Market OR的人都是董事,那么他们可以是真实的,也可以是真的。现在你想要总统和负责人......所有人都要单独考虑......

where
      employees.position like "%Market%"
   OR employees.position like "%Direct%"
   OR employees.position like "%vice president%"
   OR employees.position like "%head of%"

现在,对于有人是营销总监的条件,他们将符合两个标准而不是一个标准。其他类似的,只要有人在您正在寻找的分类中。