如何比较具有多个值的 varchar 列

How to compare a varchar column with multiple values

有没有办法将列与表达式列表进行比较?这是我当前的代码:

WHERE    
   [Description] like 'c:DEC%' 
   or [Description] like 'c:DTI%' 
   or [Description] like 'c:DCT%' 
   or [Description] like 'c:DTB%' 
   or [Description] like 'c:DTX%' 

我想要这样的东西:

Where [Description] like ('c:DTI%','c:DCT%','c:DTB%','c:DTX%')

我建议这最好通过关联而不是多个硬编码条件来实现,尤其是当您有数百个条件时!

您可以将 table - 永久性或 table-valued-parameter 传递给您的过程,并使用 exists

实施过滤
from MyTable t
where ...
and exists (select * from LookupTable l where t.[description] like l.MatchText)

把它放在临时的table

create table #temp
(
    descript varchar(100)
)

insert into #temp (descript) values
('c:DTI%') , ('c:DCT%'), ('c:DTB%'), ('c:DTX%');

SELECT *
FROM   yourtable d 
       INNER JOIN #temp t    ON    d.[Description] LIKE t.descript