如何在SQL列表中使用?

时间:2014-03-07 22:09:20

标签: sql-server tsql

我在表格中有一个列,我想用它来搜索。例如

SELECT * from Employee
WHERE Employee.LName like ('%Mac%', '%Smi%', '%Wal%')

当我尝试时,它不起作用。我希望能够做到这样的事情,而不是像

那样
SELECT * from Employee
WHERE Employee.LName like '%Mac%'
OR Employee.LName like '%Smi%'
OR Employee.LName like '%Wal%'

2 个答案:

答案 0 :(得分:1)

试试这个:

create table #lookfor (LikeName varchar(32))
insert into #lookfor values ('%Mac%'),('%Smi%'),('%wal%')


select * 
from employee emp 
join #lookfor lf on emp.LastName like lf.Likename
  • 构建一个临时表来保存表达式。
  • 使用LIKE运算符
  • 加入主表和#temp表

答案 1 :(得分:1)

我不知道这是否更容易,但这是一个选择 如果你需要模拟一个连接

,这很好
  SELECT [docEnum1].[value]
    FROM [docEnum1]
    join ( values ('%new%'), ('%allen%'), ('%waste%')
         ) as [joinVals] (val)
      on [docEnum1].[value] like [joinVals].[val]